Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako znížiť dĺžku reťazca v C

Pri práci s reťazcami v C , môže byť užitočné , aby dynamicky zvýšiť alebo znížiť veľkosť reťazca , aby efektívne spravovať svoje pamäti . Normálny reťazca definované kľúčové slovo " char * " sú statické veľkosti , ktoré nemožno zmeniť , takže budete musieť pracovať priamo s pamäťovými blokmi miesto . Pomocou funkcie " malloc " vytvoriť pamäťový blok , ktorý ukladá reťazec a potom funkciu " realloc " zmeniť veľkosť bloku pamäte . Pokyny dovolená 1

Otvorte C zdrojový súbor v editore , ako je napríklad Microsoft Visual Studio Express .
2

Pridajte nasledujúci kód v hornej časti C zdrojového súboru , takže môžete pristupovať k pamäťovej funkcie : Spojené

# include klipart

# include
3

deklarovať premenné že budete používať pridaním nasledujúci kód v hornej časti vášho funkcie :

char * buf , * cur_ptr , * temp_ptr ;

char c ;

size_t mem_size = 200 ;

size_t mem_used = 0 ;
4

Volanie funkcie " malloc " prideliť blok pamäte , ktoré môžete použiť na uloženie reťazca , pridaním kódu :

buf = ( char * ) malloc ( ( mem_size ) * sizeof ( char ) ) ;

if ( buf == NULL ) return -1 ;
5

príjem vstup užívateľa , jeden znak v čase, kým nový riadok ( ' \\ n' ) , znak alebo 200 znaky sú zapísané , pridaním kódu :

cur_ptr = buf ;

while ( ( ! c = getchar ( ) ) = ' \\ n' ) {

* cur_ptr + + = c ;

mem_used + + ;

if ( mem_used == mem_size ) break ;

}
6

Volanie funkcie " realloc " prerozdeliť blok pamäti , čím sa znižuje jeho veľkosť 2 , s nasledujúcim kódom :

if ( mem_used > 2 ) {

mem_size - = 2 ;

temp_ptr = realloc ( buf , mem_size ) ;

if ( temp_ptr == NULL ) return -1 ;

buf = temp_ptr ;

cur_ptr = buf + mem_used ;

}

ukazovateľ " buf " poukazuje na začiatku " reťazec " pamäťového bloku a " cur_ptr " poukazuje na aktuálnu pozíciu , čo je koniec " reťazca " .
7

Volanie funkcie " zadarmo " , aby ste uvoľnili blok pamäte pre reťazec , inak váš program bude mať pretečeniu pamäte , pridaním kódu :

zadarmo ( buf ) ;
8

Uložte C súbor , skompilovať a spustiť program spustiť nový reťazec kód
< . br >

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené