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

    =)=)
    ++
    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.
      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++)

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