[C]Allocation d'un tableau de pointeur 2D

Résolu/Fermé
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 - Modifié par Mouch89 le 6/11/2010 à 18:20
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 - 6 nov. 2010 à 19:45
Bonsoir,

J'aimerais pouvoir me servir d'un tableau de pointeur sur structure t_carte de 2 dimensions (je code en C).

Le soucis, c'est que je n'arrive pas à l'allouer avec des mallocs. Je m'embrouille rapidement dans ces histoires de pointeurs.
Aussi j'aimerais savoir si quelqu'un ne pourrait pas me donner un ptit coup de pouce ?!

Pour le moment j'ai :

    t_carte *carte[4][13];     
    int i, j;      

    for(j=0 ; j <=3 ; j++)     
    {     
        for(i=0 ; i<=12 ; i++)     
        {     
           carte[j][i] = (t_carte*)malloc(sizeof(t_carte));     
        }     
    }

Mais le compilateur semble ne pas apprécier :D




Merci et bonne soirée.

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
6 nov. 2010 à 18:27
Et je le comprends ^^.
carte comme tu le dis, est un tableau de pointeurs. Qui dit tableau dit qu'il n'y a pas d'allocation à faire (sur la dimension du tableau j'entends).
Pour allouer la partie pointeur, il suffit de faire :
for(i=0; i<4;i++) {
    for(j=0;j<13;j++) {
        carte[i][j]=malloc(sizeof (t_carte));
    }
}

Cdlt,
0
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 7
6 nov. 2010 à 19:09
Hum, visiblement mon malloc n'était pas si mal utilisé que ça (je crois que ce que tu m'as donné en réponse, c'est le même)

PS : Je viens de trouver mon erreur -stupide- j'ai échange le i et le j dans les dimensions lors de l'utilisation du tableau !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 6/11/2010 à 19:54
C'est sûr que si tu changes ton post en cours ^^.
Au début t'avais mis deux malloc et un sizeof(t_carte*). Petit malin ;-))).

M'enfin, le principal c'est que ça marche...
0
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 7
6 nov. 2010 à 19:45
j'avais fait un mauvais copier-coller.
Désolé, je pensais avoir changé assez rapidement !
0