C char*

Fermé
frizou - 15 oct. 2005 à 15:49
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 15 oct. 2005 à 17:45
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 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
15 oct. 2005 à 17:45
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