C char*

frizou -  
crabs Messages postés 909 Statut Membre -
salut a tous!

jvous explique mon pb:
jdeclare un char * mot, et en fait jveux stocekr dans ce mot un certain nombre de caracteres (dont je ne connais pas le nombre) et ceci caractere par caractere
alors dois-je allouer la taille d'un seul caractere pour mot puis faire sans cesse des realloc d'un caractere de plus tant qu'il y a des caracteres a recuperer?
ou y'a t'il une autre solution?
j'exclue la solution de creer un tableau de caracteres suffisamment gd car j'utiliserai souvent d el a place pour rien ne connaissant pas du tt le nombre de caracteres a recuperer

Merci

1 réponse

crabs Messages postés 909 Statut Membre 507
 
Salut,
Utiliser 8 ko de RAM en pile coute moins cher au système que 100 realloc.
A toi de voir, mais perso je déclarerai un gros tableau statique de char, et à la fin
de la lecture j'effectuerai un malloc() pour recopier le buffer lu, à ce momment-là
la taille du buffer est connue.
Sinon tu peux procéder par 'realloc incrémental, 4ko par exemple. Au premier
coup tu alloues 4ko, dès que ta chaine dépasse tu realloues 4ko de plus, et
ainsi de suite.
A+, crabs
0