LPSTR wie Speicher frei nach der Verwendung
-
18-09-2019 - |
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
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 [].