Verständnisfrage - Zeiger und Arrays
-
Kurz und schmerzlos:
wird bei
int* ptr1 = (int*) malloc (3*sizeof(int));eine Array (int malloc[3]) zugewiesen?
Oder was bedeutet(int*) malloc (3*sizeof(int));??
Danke :).
-
dennisli schrieb:
Kurz und schmerzlos:
wird bei
int* ptr1 = (int*) malloc (3*sizeof(int));eine Array (int malloc[3]) zugewiesen?
Nein, das ist ein Aufruf der Funktion malloc(). malloc() besorgt vom Heap ein bisher unbenutztes Objekt der Größe 3*sizeof(int) Bytes und gibt einen Zeiger darauf vom Typ void* zurück. Falls das nicht möglich ist, gibt malloc einen Nullzeiger zurück. Der void* wird dann in einen int* umgewandelt, um ptr1 damit zu initialisieren.
-
Bashar schrieb:
Nein, das ist ein Aufruf der Funktion malloc(). malloc() besorgt vom Heap ein bisher unbenutztes Objekt der Größe 3*sizeof(int) Bytes und gibt einen Zeiger darauf vom Typ void* zurück. Falls das nicht möglich ist, gibt malloc einen Nullzeiger zurück. Der void* wird dann in einen int* umgewandelt, um ptr1 damit zu initialisieren.
Also einfach die C-Variante von
int* ptr1 = new int[3];