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().