Probleme initialisation tableau

Résolu/Fermé
sophieeeeee Messages postés 1396 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 18 septembre 2008 - 9 juin 2008 à 11:54
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 - 11 juin 2008 à 09:44
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
A voir également:

6 réponses

kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
9 juin 2008 à 11:56
c'est normal tu essai de mettre des chaine de caractère dans un tableau de caractère
0
sophieeeeee Messages postés 1396 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 18 septembre 2008 53
9 juin 2008 à 11:59
ben oui c'est ce que je veux faire.Pourquoi ca pose un probleme?
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
9 juin 2008 à 12:01
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
0
sophieeeeee Messages postés 1396 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 18 septembre 2008 53
9 juin 2008 à 14:02
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);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
10 juin 2008 à 09:24
déclare tout simplement un char* TabMes[taille];
comme ça tu ne fais pas de malloc inutile =)
0
sophieeeeee Messages postés 1396 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 18 septembre 2008 53
10 juin 2008 à 11:09
si je pouvais je le ferai mais malheureusement je n'ai pas le choix. Il me faut un char ** TabMes.
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
11 juin 2008 à 09:44
dans ce cas

char ** TabMes=(char**)malloc(taile*sizeof(char*));
0