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

Résolu
Mouch89 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
Mouch89 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -
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.

A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention   7
 
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention   7
 
j'avais fait un mauvais copier-coller.
Désolé, je pensais avoir changé assez rapidement !
0