Probleme initialisation tableau

Résolu
Bonjour,
j'ai declaré un tableau comme ceci:

char * TabMes;
int taille =20;

je creer ce tableau:

TabMes=malloc(taille);
if(TabMes==NULL)
{
printf("impossible de creer le tableau\n");
}
else
{
printf("creation tableau ok\n");
}

je voudrais remplir ce tableau donc je fais:

for (int i=0;i<20;i++)
{
if (TabMes[i]==11)
{
TabMes[i ]="Celui La";
}
else
{
TabMes[i]="Pas Celui la";
}
}

quand je compile tout va bien mais quand j'exécute: une fenetre s'ouvre avec ce message:

Access violation writing location 0x00000000.

et quand j'ouvre ma fenetre d'execution il y a marqué:
impossible de crér le tableau.

Je ne comprend pas pourquoi.Pouvez vous m'aidez????
merci
Configuration: Windows Vista
Internet Explorer 7.0

6 réponses

  1. déclare tout simplement un char* TabMes[taille];
    comme ça tu ne fais pas de malloc inutile =)
    1. si je pouvais je le ferai mais malheureusement je n'ai pas le choix. Il me faut un char ** TabMes.
  2. j'ai changé mon char * TabMes en char **TabMes

    et modifier mes test :

    for(k=0;k<taille;k++)
    {

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

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

    }
    }
    mais je n'arrive toujours pas a créer mon tableau avec :
    TabMes = malloc(taille);
    1. parce que tu déclares un char * TabMes donc un tableau de char et non pas un tableau de char*
      de plus if (TabMes[i]==11) tu test si il y a des int dedans, gros problème de typage sur ton programme
      1. ben oui c'est ce que je veux faire.Pourquoi ca pose un probleme?
        1. c'est normal tu essai de mettre des chaine de caractère dans un tableau de caractère