000
10.01.2007, 21:45 Uhr
KaraHead
|
Moin, ich hab mal ein paar Fragen, die ich einfach mal in den Thread schmeiße
C++: |
int *ptr1 = (int*)calloc(3,sizeof(int)); int *ptr2 = (int*)calloc(4,sizeof(int));
//arbeite mit ptr1 ...
ptr1 = (int*)realloc(ptr2,4*sizeof(int)); // (1)
//oder ptr1 = (int*)malloc(sizeof(int)); //(2)
|
Muss ich bei (1) oder (2) den ptr1 erst mit free() freigeben und auf NULL setzten, bevor ich ihn wieder neu belege oder räumt das System den Speicher auf den kein Pointer mehr zeigt selber frei (scheint für mich eher unwahrscheinlich, da es sich nach GC anhört)?
Und die 2. Frage
C++: |
int *ptr1 = (int*)calloc(2,sizeof(int)); int arr[10];
//Fülle arr
ptr1 = (int*)realloc(arr,10*(sizeof(int)); //(1)
|
(1) sollte doch eigentlich auch funktionieren, da Arrays auch in einen Pointer umgewandelt werden können, nicht oder?
In meinem (kleinen) Programm wurde ptr1 zwar gefüllt aber nicht mit dem Inhalt von arr, sondern mit sinnlosen Zeichen/Zahlen.
Danke schonmal. Dieser Post wurde am 10.01.2007 um 21:46 Uhr von KaraHead editiert. |