Les doubles pointeur en c

Fermé
judeoleborgne Messages postés 7 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 7 mars 2014 - 17 avril 2012 à 12:44
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 19 avril 2012 à 19:07
Bonjour,
j ai un gros probleme cela fait quelque jour que je rame sur un tableau double pointeur.

int i = 0,**PPTAB[5]={0},*PTEMP = NULL,x=0;
while(i<=5)
{
*PPTAB[i] = (int *) malloc(6*sizeof(int));
i++;
}
i = 0;

printf("allocation ok \n");

while (i<=5)
{
PTEMP = *PPTAB[i];
x=0;
while(x<=6)
{
*PTEMP = 0;
x++;
}
i++;
}
printf("mise a zero ok \n");
i = 0;
x = 0;

while (i<=5)
{
PTEMP = *PPTAB[i];
x=0;
gotoxy(i*5+1,1);
printf("tableau %d",i);
while(x<=6)
{
gotoxy(i*5+1,x+1);
printf("%d",*PTEMP);
x++;
}
i++;
}

voici mon code l idee c est de creer 5 tableau assigner en memoire par malloc, de mettre toute les valeur a 0, de les afficher et de les supprimer mais il plante a l allocation j ai beau chercher je ne trouve aucun post traitant ce sujet auriez vous une idee?

1 réponse

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
19 avril 2012 à 19:07
Bonjour,
Si vous voulez créer 5 tableaux de 6 int chacun :
int **PPTAB,i;
PPTAB=malloc(sizeof(int*)*5); /* PPTAB devient un tableau de 5 pointeurs int* */
for(i=0;i<5;i++){
    PPTAB[i]=malloc(sizeof(int)*6); /* on alloue 6int et on met l'adresse dans le ptr du tableau */
}

après il vous suffit d'utilisé PPTAB comme si c'était un tableau 2D int PPTAB[5][6];
0