Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

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:

  • ptr is een pointer van het gespecificeerde cast_type.
  • byte_size is 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

Dynamische geheugenallocatie in C: malloc() begrijpen met praktische voorbeelden

Belangrijkste punten

  • Het gebruik van sizeof(*ptr) in plaats van sizeof(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

  1. C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
  2. C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
  3. C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
  4. C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
  5. C++ Structs Uitgelegd met een Praktisch Voorbeeld
  6. std::map in C++ Onder de Knie: Uitgebreide Handleiding met Code‑Voorbeelden
  7. Beheersen van std::list in C++: Syntaxis, Functies & Praktische Voorbeelden
  8. C++ Functies Uitgelegd met Praktische Codevoorbeelden
  9. calloc() in C: Nul-geïnitialiseerde geheugenallocatie en een praktisch voorbeeld
  10. realloc() in C gebruiken: Syntaxis, best practices & voorbeeld
  11. Beheersing van C's free() functie: Praktische gids & voorbeeld