2012-03-24 20 views
0

Wenn ich einen Zeiger auf ein Array von Zeigern habe, ist der Zeiger auf dieses Array auf alle Elemente in diesem Array, dh wenn ich den Zeiger auf das erste Element in diesem Array, i sollte alle anderen Zeiger freigeben oder nicht? Vielen Dank im Voraus.Zeiger auf ein Array von Zeigern

+1

'free'ing ist nur sehr indirekt mit Arrays verwandt. Sie befreien, was Sie zugewiesen haben, nicht mehr und nicht weniger. –

Antwort

0

Sie sollten genau freigeben, was Sie zuweisen (oder was Sie von Funktionen erhalten, die speziell sagen, dass Sie den Zeiger jetzt besitzen, oder dass es für die Weitergabe an free geeignet ist). Das heißt, wenn Sie ein Array zugewiesen haben, geben Sie den Zeiger auf dieses Array frei.

Nun, wenn das Array Zeiger auf andere Sachen enthält, die Sie zugeordnet haben oder erworben, dann sollten Sie diese Zeiger frei als auch (das heißt, der Wert jedes Element im Array), es sei denn, Sie Kopien gebunkert haben wo du immer noch benutzt. Aber Sie müssen (und sollten nicht) Zeiger auf jede Zelle im Array freigeben.