Quando si lavora con le stringhe in C , può essere utile per aumentare dinamicamente o ridurre le dimensioni di una stringa di gestire la memoria in modo efficiente . Stringhe normali definiti dal "char * " parola chiave hanno dimensioni statiche che non possono cambiare , quindi è necessario lavorare direttamente con i blocchi di memoria , invece. Utilizzare la funzione " malloc " per creare un blocco di memoria che memorizza la stringa e poi la funzione " realloc " per cambiare la dimensione del blocco di memoria . Istruzioni 
 1 
 Aprire il file sorgente C in un editor come Microsoft Visual Studio Express . 
 2 
 Aggiungere il seguente codice nella parte superiore del vostro file sorgente C in modo che è possibile accedere alle funzioni di memoria : 
 
 # include 
 
 # include 
 3 
 dichiarare variabili che si intende utilizzare , aggiungendo il seguente codice nella parte superiore della vostra funzione : 
 
 char * buf , * cur_ptr , * temp_ptr ; 
 
 char c ; 
 
 mem_size size_t = 200 ; 
 
 size_t mem_used = 0; 
 4 
 richiamare la funzione " malloc " per allocare un blocco di memoria che è possibile utilizzare per memorizzare la stringa , aggiungendo il codice : < br 
 buf > = ( char * ) malloc ( ( mem_size ) * sizeof ( char) ) ; 
 
 if ( buf == NULL) return -1 ; 
 5 
 ricevere l'input dell'utente , un carattere alla volta , fino a quando un carattere di nuova riga ( '\\ n' ) o di 200 caratteri vengono inseriti , aggiungendo il codice : 
 
 cur_ptr = buf ; 
 
 while ( ( c = getchar ( ) ) = '\\ n' ) { 
 
 * cur_ptr + + = c ; ! 
 
 mem_used + + ; 
 
 se ( mem_used == mem_size ) break; < br > 
 } 
 6 
 richiamare la funzione " realloc " per riallocare il blocco di memoria , riducendo la sua dimensione da 2 , con il seguente codice : 
 
 se ( mem_used > 2 ) { 
 
 mem_size - = 2; 
 
 temp_ptr = realloc ( buf , mem_size ) ; 
 
 se ( temp_ptr == NULL) return -1 ; 
 < p > buf = temp_ptr ; 
 
 cur_ptr = buf + mem_used ; 
 
 } 
 
 il puntatore " buf " indica l'inizio del blocco di memoria " stringa" e " cur_ptr " punta alla posizione corrente , che è il fine della " stringa ". 
 7 
 richiamare la funzione " libera " per liberare il blocco di memoria per la stringa , altrimenti il vostro programma avrà una perdita di memoria , aggiungendo il codice : . 
 
 gratuito ( buf ) ; 
 8 
 Salvare il file C , compilare ed eseguire il programma per eseguire il nuovo codice stringa