Dynamische geheugenallocatie in C: malloc() begrijpen met praktische voorbeelden
Wat is malloc() in C?
In de C Standaardbibliotheek reserveert malloc() – kort voor “memory allocation” – dynamisch een aaneengesloten geheugenblok tijdens runtime. De functie retourneert een void* pointer naar het begin van dat blok, wat je kunt casten naar elk pointertype dat je nodig hebt.
Syntaxis
ptr = (cast_type *)malloc(byte_size);
Waar:
ptris een pointer van het gespecificeerdecast_type.byte_sizeis het aantal bytes om te alloceren.
Voorbeeld:
ptr = (int *)malloc(50);
Na deze aanroep zijn 50 bytes geheugen gereserveerd, en wijst ptr naar de eerste byte van die ruimte.
Praktisch voorbeeld
#include <stdlib.h> #include <stdio.h> int main() { int *ptr; ptr = malloc(15 * sizeof(*ptr)); /* Ruimte alloceren voor 15 integers */ if (ptr != NULL) { *(ptr + 5) = 480; /* Wijs 480 toe aan het zesde integer */ printf("Value of the 6th integer is %d", *(ptr + 5)); } return 0; }
Output:
Value of the 6th integer is 480

Belangrijkste punten
- Het gebruik van
sizeof(*ptr)in plaats vansizeof(int)maakt de code bestand tegen latere wijzigingen in het pointertype. - Als het systeem de aanvraag niet kan voldoen, retourneert
malloc()NULL; controleer altijd op een null pointer voordat je het geheugen gebruikt. - Het toegewezen blok is aaneengesloten en kan als een array worden behandeld. Pointer-arithmetiek wordt voorgezogen boven de subscript-operator om het oorspronkelijke pointerwaarde niet te wijzigen.
malloc() werkt met elk datatype – inclusief karakters, structuren, en gebruiksgedefinieerde typen – en biedt flexibel geheugenbeheer voor C programmeurs.
C Taal
- C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
- C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
- C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
- C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
- C++ Structs Uitgelegd met een Praktisch Voorbeeld
- std::map in C++ Onder de Knie: Uitgebreide Handleiding met Code‑Voorbeelden
- Beheersen van std::list in C++: Syntaxis, Functies & Praktische Voorbeelden
- C++ Functies Uitgelegd met Praktische Codevoorbeelden
- calloc() in C: Nul-geïnitialiseerde geheugenallocatie en een praktisch voorbeeld
- realloc() in C gebruiken: Syntaxis, best practices & voorbeeld
- Beheersing van C's free() functie: Praktische gids & voorbeeld