3 Erklærer variabler som du vil bruke ved å legge følgende kode øverst i funksjon din : en
røye * buf , * cur_ptr , * temp_ptr ;
røye c ;
size_t mem_size = 200;
size_t mem_used = 0;
4
Ring " malloc " funksjon for å allokere en blokk med minne som du kan bruke til å lagre strengen , ved å legge inn koden :
buf = ( char * ) malloc ( ( mem_size ) * sizeof ( røye ));
if ( buf == NULL ) return -1 ;
5
motta brukerundersøkelser, ett tegn om gangen , inntil et linjeskift (' \\ n' ) tegn eller 200 tegn er lagt inn, ved å legge inn koden : en
cur_ptr = buf ;
while ( ( c = getchar ( ) ) = '\\ n' ) {
* cur_ptr + + = c ; !
mem_used + +;
if ( mem_used == mem_size ) break;
}
6
Ring " realloc " funksjonen for å omfordele minnet blokken , redusere størrelsen med 2, med følgende kode :
if ( mem_used > 2 ) {
mem_size - = 2;
temp_ptr = realloc ( buf , mem_size ) ;
if ( temp_ptr == NULL ) return -1 ;
< p > buf = temp_ptr ;
cur_ptr = buf + mem_used ;
}
pekeren " buf " peker på begynnelsen av " strengen " minne blokk og " cur_ptr " peker på det aktuelle posisjon, som er slutten av " strengen . "
7
Ring "gratis "-funksjonen for å frigjøre minne blokk for strengen , ellers programmet vil ha en minnelekkasje , ved å legge inn koden : .
gratis ( BUF) ;
8
Lagre C -filen , kompilere og kjøre programmet for å utføre den nye strengen koden