Frage

Nehmen wir an ich eine LPSTR Variable haben. Wie frei i den Speicher nach der Variable. Ist es

LPSTR szFileName = GetSBCSBuffer(sFilePath); // sFilePath is a CString
delete szFileName;

oder

delete []szFileName;

Bitte raten

War es hilfreich?

Lösung

Wenn der Speicher zugewiesen wurde mit new char[SIZE] dann muss es befreit werden delete [] verwendet wird.

Andere Tipps

Sie können diese Frage nicht beantworten, ohne die Besonderheiten der GetSBCSBuffer zu kennen. Hoffentlich wer schrieb die Funktion, die Sie links mit dem Code und / oder Dokumentation, so dass Sie sehen können, wo die Zeichenfolge herkommt. Es könnte sein, dass weder Ihre Alternativen korrekt ist. Der Autor von GetSBCSBuffer hat möglicherweise einen anderen Speicherzuordner oder zurück einen Zeiger auf eine Stelle im Innern sFilePath verwendet. Im letzteren Fall wäre es sehr schlecht sein, jede deallocator zu nennen.

Ich habe gerade bemerkt, dass Sie die Frage beantwortet, sich in Ihrem Kommentar elder_george Antwort . Die Implementierung verwendet, um neue [], so müssen Sie löschen [].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top