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

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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,
    1. 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 !
      1. Contributeur
        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...
      2. j'avais fait un mauvais copier-coller.
        Désolé, je pensais avoir changé assez rapidement !