Tableau de char*

alex1er Messages postés 39 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 5 juin 2006 - 2 sept. 2002 à 14:43
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005 - 2 sept. 2002 à 19:46
Salut a tous
J'aimerais faire la déclaration suivante dans mon code :

char * swSurface[]; //Tableau de char * donc

Seulement, le compilo me jete car le nombre d'élément du tableau n'est pas initialisé.
Je voudrais pouvoir l'initialiser en cours de prog en lisant la valeur dans un fichier.

Comment déclarer la variable et comment initialiser le nombre d'élément par la suite.?

merci
@lex

3 réponses

cs_Beuss Messages postés 100 Date d'inscription samedi 27 juillet 2002 Statut Membre Dernière intervention 11 juin 2003
2 sept. 2002 à 14:50
il faut que tu te serves des opérateurs new et delete :
char *pszString;
pszString = new char[ValeurLue];
pour acceder au premier élément ce sera *(pszString), au deuxième *(pszString+1) etc
surtout à la fin tu n'oublies pas de l'effacer avec : delete [] pszString;
voilavoila
0
alex1er Messages postés 39 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 5 juin 2006
2 sept. 2002 à 14:54
Merci de ta reponse.

donc pour affecter le premier element ([0]) :
*(pszString) = "element1";

et pour le lire
printf("%s\n", *(pszString));

J'ai bon?
0
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
2 sept. 2002 à 19:46
Encore plus lisible tu peux écrire :

pszString[0] = val1;
mais le problème c'est que val1 est du type char
si tu veux un tableau de chaine de caractère c'est un tableau de char* qui faut faire donc :
faire un char** en effet un char* est un tableau de char
0
Rejoignez-nous