3 Deklarera variabler att du kommer att använda genom att lägga till följande kod på toppen av din funktion :
char * buf , * cur_ptr , * temp_ptr ;
röding c ,
size_t mem_size = 200 ;
size_t mem_used = 0;
4
Ring " malloc " -funktion för att fördela ett block av minne som du kan använda för att lagra strängen , genom att lägga in koden :
buf = ( char * ) malloc ( ( mem_size ) * sizeof ( char ) ) ;
om ( BUF == null ) return -1 ;
5
emot användarens inmatningar , ett tecken i taget , tills en radbrytning ( ' \\ n ' ) tecken eller 200 tecken anges , genom att lägga in koden :
cur_ptr = BUF ,
while ( ( c = getchar ( ) ) = ' \\ n ' ) {
* cur_ptr + + = c ; !
mem_used + + ;
om ( mem_used == mem_size ) break ;
}
6
Ring " realloc " -funktion för att omfördela minnet blocket , minskar dess storlek med 2 , med följande kod :
om ( mem_used > 2 ) {
mem_size - = 2 ;
temp_ptr = realloc ( buf , mem_size ) ;
om ( temp_ptr == null ) return -1 ;
buf = temp_ptr ;
cur_ptr = buf + mem_used ;
}
pekaren " buf " pekar på början av den "sträng" minnesblock och " cur_ptr " pekar på den aktuella positionen , vilket är slutet av " strängen ".
7
Ring " gratis " -funktionen för att frigöra minnesblock för strängen , annars ditt program kommer att ha en minnesläcka , genom att lägga in koden : .
gratis ( buf ) ;
8
Spara din C -fil , kompilera och köra programmet för att verkställa den nya strängen koden