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

4 réponses

  1. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

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

    =)=)
    ++
    0
  2. 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
    1. 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
  3. 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
    1. 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
  4. 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