2016-08-19 5 views
-6

Wenn ich einen Zeiger habe float *p; Und ich möchte ein Element seiner Elemente oder alle seiner Elemente löschen .. Gibt es einen Operator kann dies tun?Wie lösche ich Elemente eines Zeigers in C++

Und delete [] p; Operator wird nur die Adresse des Zeigers oder der Elemente zu löschen?

Vielen Dank im Voraus.

+1

Aber 'float * p' ist ein Element (ein einzelner Zeiger auf einen Float). Meinst du float * p [] '- ein Array von Float-Pointern? –

+0

Worauf beziehen sich "seine Elemente"? –

+0

Verwenden Sie 'std :: vector'. – GManNickG

Antwort

3

Wenn Sie Speicher mit zuteilen:

float* p = new float; 

Sie müssen, dass der Speicher freizugeben, indem Sie:

delete p; 

Wenn Sie weisen Speicher mit:

float* p = new float[some_size]; 

Sie müssen ausplanen diesen Speicher mit:

delete [] p; 

Sie können einen Teil des zugewiesenen Speichers nicht freigeben. Unabhängig davon, welche /delete Methode Sie verwenden, wird ein Anruf an delete den gesamten Speicher freigeben, der durch den Anruf der entsprechenden new zugewiesen wurde.

Verwandte Themen