Anzeige des reservierten Speichers durch malloc
-
Hallo Leute,
ich beschäftige mich zur Zeit mit malloc, also Speicher-Alloziierung.
Ich habe schon einiges darüber gelesen, aber gibts es auch eine Möglichkeit, wie ich mir anzeigen lassen kann (per printf Ausgabe) ob der Speicher auch reserviert wurde?
Erstelle ich ein sizeof(p_test), so wird mir die zahl 4 ausgegeben. Bei einem Pointer verwundert mich das auch nicht - wird schließlich immer als 4 ausgegeben, egal welcher Pointer. Setze ich die Var für das Array ein oder sonst was, gibt er mir die Bytes aus, die dafür am Anfang des Programms (z.B. durch char array[50];) initialisiert wurden.Vielen Dank
Gruß
Tobi
-
gibts es auch eine Möglichkeit, wie ich mir anzeigen lassen kann (per printf Ausgabe) ob der Speicher auch reserviert wurde?
Er wurde reserviert, wenn malloc dir einen Zeiger != 0 zurückgeliefert hat. Oder meinst du, malloc denkt sich mal eben "ach kein Bock heute"?
-
Hallo,
und was heißt jetzt "Zeiger != 0" ?!
printf(sizeof(POINTER)); ------- in der Regel immer 4 Byte (bei mir)
Also wie kann man sich das ausgeben lassen?
-
TobiisFreaky schrieb:
und was heißt jetzt "Zeiger != 0" ?!
der rückgabewert von 'malloc' ist gemeint. mit 'sizeof()' hat das nix zu tun.
-
#include<stdio.h> #include<stdlib.h> int main() { char* pointer = malloc(10); if (pointer == 0) printf("Hat nicht funktioniert. Speicher voll?\n"); else { printf("Hat funktioniert, 10 Bytes sind doch immer noch frei.\n"); free(pointer); /* <- damit das auch so bleibt */ } return 0; }