malloc & free
-
void* p = malloc(10);
irgendwoanders bekomme ich den Pointer dann mache ich
free(p);
weil p ist ein void Pointer, also 4 byte, aber die size 10, wie kann der compiler davon wissen?
-
netrobot schrieb:
... aber die size 10, wie kann der compiler davon wissen?
der compiler weiss es nicht, aber 'malloc' hats sich gemerkt und daher weiss 'free' es auch.
-
d.h, malloc function hat intern eine Liste, die alle return Pointe speichert,danach anhand des eingegebenen Points wird der entsprechende Speicher freigegeben, rightig? und diese liste muss global sein
-
^^richtig geschlussfolgert.