Initialiser du char * *

sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   -  
sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je déclare : char * * Tableau;
j'alloue la mémoire : Tableau = callo (3, sizeof(char));
et je voudrai initialiser: Tableau = { "chaine1",
"chaine2",
"chaine3"
};
Mais ca ne marche pas.
ca me met: syntaxe error : {
donc j'ai changé les { par des parentheses la ca compile mais après ca m'ouvre une fenetre ou il y a écrit:
access violation reading location
et ce quand j'essaie de faire :
printf("......%s",Tableau[2]);
Est ce que quelqu'un aurait déja eu ce probleme?
Je travail sous microsoft visual studio 2005 ( si ca peut vous aider)

4 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

http://www.programmersheaven.com/mb/CandCPP/199488/199488/ReadMessage.aspx

=)=)
++
0
sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   53
 
Merci mais je ne peux pas l'initialisé dynamiquement.Je dois l'initialiser avec des chaine en dur.Sinon dynamiquement j'y arrive: ca donne :
for(k=0;k<size;k++)

{
if(k==11)
{
Tableau[k]="celui la";

}
else
{
Tableau[k]="pas celui la";

}
}
ou alors peut etre que je n'ai pas compri ce que tu voulais me montrer je ne suis pas très doué en anglais.
0
sandul Messages postés 4013 Statut Membre 723
 
Il ne s'agit pas d'une initialisation dynamique mais de l'allocation / libération mémoire réalisée de 4 manières différentes -- tu regarderas uniquement le calloc/malloc si tu travailles avec du C, sinon les métodes 3 et 4 (pour le C++)

++
0
sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   53
 
Mais je ne pense pas avoir de probleme avec mon allocation de mémoire.Juste avec l'initialisation.Mais merci quand meme
0
sandul Messages postés 4013 Statut Membre 723
 
je déclare : char * * Tableau;
j'alloue la mémoire : Tableau = callo (3, sizeof(char));
et je voudrai initialiser: Tableau = { "chaine1",
"chaine2",
"chaine3"
}; 

ben si, tu utilises l'alloc dynamique...

Sinon, pour une déf statique:
char[3][8] tableau = {"chaine1", "chaine2", "chaine3"}; // pour un tableau de 3 éléments chacun de max 7 caractères
0
sophieeeeee Messages postés 1396 Date d'inscription   Statut Membre Dernière intervention   53
 
Mais la c'est un exemple ce qu'il y a dans le tableau.Parce qu'en réalité ca va ressemblé a ca donc impossible d'avoir un tableau a 2 dimensions.Mais merci.
/* 0 ID_POINT_INTER4 0 */ "????",
/* 1 ID_FORMATAGE 1 */ "Formatage ......",
/* 2 ID_CONDUCTEUR 2 */ "CONDUCTEUR :",
/* 3 ID_PRISE_DE_SERVICE 3 */ " PRISE DE SERVICE ",
/* 5 ID_SAISIR_VOTRE 5 */ "SAISIR VOTRE",
0