Si declaro un búfer de caracteres borrado automático temporal utilizando¿Es malo usar auto_ptr con el nuevo char [n]
std::auto_ptr<char> buffer(new char[n]);
continuación, el búfer se elimina automáticamente cuando el buffer se sale del ámbito. Supongo que el buffer se borra usando delete.
Sin embargo, el búfer se creó utilizando new [], y por lo tanto estrictamente hablando, el búfer debe eliminarse utilizando delete [].
¿Qué posibilidad hay de que esta falta de coincidencia pueda causar una pérdida de memoria?
El punto es para garantizar la eliminación. Usar un puntero/matriz inteligente es seguro contra errores de programación normales, además de ser lo suficientemente inteligente como para liberar la memoria cuando ocurren excepciones. El uso directo de matrices C es una pérdida de memoria. – Diastrophism
El punto es que queremos garantizar la eliminación. Por lo tanto, sin preparar RAW nuevo no es una buena respuesta. std :: vector por otro lado es una buena respuesta –