free und 2-dim void*
-
Hallo,
ich habe eine Verstaendnisfrage:
ich habe einen void* Pointer. Dieser zeigt auf ein Pointer von Pointer Array,
zB char**. Beide "Dimensionen" wurden vorher allokiert. Nun will ich den
allokierten Speicher komplett wieder freigeben.Muss ich dann eigentlich sowas wie...
free( ((char**) ptr)[idx] ); // fuer jedes einzelne Array
...und dann ein...
free( ((char**) ptr) );
...machen, oder reicht ein einfaches...
free( ptr );
...aus, weil es doch ein void* Pointer ist?
-
voidfree schrieb:
...machen, oder reicht ein einfaches...
free( ptr );
...aus, weil es doch ein void* Pointer ist?
Nein, woher soll
free()
denn wissen, dass der Speicher auf weiteren freizugebenden Speicher zeigt?
-
Für jedes *alloc() ein free().