In vielen Fällen legt der Anwender im laufenden Betrieb , ob ein Programm ein Array mit 10 Elementen oder 10.000 zu verarbeiten. Da die Array-Größe ist im Voraus nicht bekannt , muss man beiseite Speicher und lassen Sie sie während der Programmausführung . Das Speicher-Management während der Laufzeit wird in der Informatik als dynamische Speicherzuweisung bekannt. Dieser Artikel konzentriert sich auf die Funktionen gewidmet dynamische Speicherzuweisung in C. Things You 
 Integrated Development Environment mit C brauchen + + Compiler 
 Book on Programmiersprache C 
 Weitere Anweisungen anzeigen 
 1 
 Fügen Sie die Bibliothek -Datei mit den Standard-Bibliothek Definitionen . Dies ist die " stdlib.h "-Datei und beinhaltet , neben anderen wichtigen C -Funktionen, alle Funktionen, die dynamische Speicherzuweisung durchzuführen. Um diese Library-Datei in Ihrem Programm gehören , legen Sie die folgende Zeile an der Spitze der Source /Header-Datei 
 Beispiel: . 
 # Include Seite 2 
 Entscheiden Sie, was Sie tun möchten . Dann wählen Sie die Funktion aus den folgenden Schritten , die am besten den Speicher - Allokation Aktion, die Sie ausführen möchten. 
 3 
 Nutzungsbedingungen malloc ( ) für einen Speicherblock von bekannter Größe . " Malloc " ordnet "Größe" Byte und gibt einen Zeiger auf den Anfang des Blocks 
 Vorbild: 
 void * malloc ( size_t size ); 
 Beispiel: . 
 Int i; 
 char * buf ; printf ("Geben Sie String-Länge :"); 
 scanf ( "% d" , & i ); 
 buf = (char *) malloc ( i +1) ; 
 if ( NULL == buf) exit ( 1); Twitter //etc 
 4 
 Employ calloc () für eine Reihe von Elementen , wobei jedes Element hat eine Größe von mehr als einem Byte . " Calloc " reserviert einen Teil des Speichers für " num" Elemente wobei jedes Element "size" Bytes in der Länge. Es gibt einen Zeiger auf den Anfang des Blocks 
 Vorbild: 
 void * calloc ( size_t num, size_t size ); 
 
 Beispiel: . 
 Int i , n; 
 int * pArr ; 
 printf (" Geben Sie die Anzahl von ganzen Zahlen :"); 
 scanf ( "% d" , & i ); 
 n = sizeof ( int); 
 pArr = (int *) calloc (i, n ); 
 if ( NULL == pArr ) exit ( 1); Twitter //etc 
 5 
 Nutzen realloc () , um die Größe von einem Speicherblock ändern. " Realloc " erweitert oder reduziert den Speicherblock "size" Bytes " ptr ", um darauf 
 Vorbild: 
 oid * realloc (void * ptr , size_t size ); 
 Beispiel: . 
 Int num1 , num2 ; 
 int * arr = NULL; 
 do { 
 printf ( "Geben Sie eine positive ganze Zahl :"); 
 scanf ( "% d" , & num1 ); 
 while ( 1> num1 ); 
 arr = (int *) calloc ( num1 , sizeof ( int) ); 
 if ( NULL == arr) exit ( 1); 
 do { 
 printf (" Geben Sie eine weitere positive ganze Zahl : "); 
 scanf ( "% d " , & num2 ); 
 while (1 > num2 ); 
 arr = (int *) realloc ( arr, num2 * sizeof ( int) ); 
 if ( NULL == arr) exit ( 1); Twitter //etc Seite 6 
 Veröffentlichung ein Speicherblock in Schritt 3 bis 5 zugeordnet , indem free () . "Free" gibt den Speicher -Block, der an der Speicherstelle beginnt das "PTR" wies auf 
 Vorbild: 
 hohlraumfreie (void * ptr) ; 
 Beispiel: . 
 Int * buf ; 
 buf = (int *) malloc ( 100 * sizeof ( int) ); free ( buf) ; Twitter //etc