Initialiser du char * *

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)
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. Salut,

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

    =)=)
    ++
    0
    1. 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
      1. 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
    2. Mais je ne pense pas avoir de probleme avec mon allocation de mémoire.Juste avec l'initialisation.Mais merci quand meme
      0
      1. 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
    3. 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