Syntaxe typedef, structure et 2 dimensions [Résolu]

Signaler
Messages postés
1
Date d'inscription
mercredi 22 avril 2020
Statut
Membre
Dernière intervention
22 avril 2020
-
Messages postés
457
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
30 mai 2020
-
Bonjour à tous,

j'ai un problème sur la façon d'écrire du code basé sur du typedef, structure et double dimensions. Le plus simple est de vous montrer mon problème :

typedef struct
{
 uint8_t W;
 uint8_t X;
 uint8_t Y;
 uint8_t Z;
}t_stStructre;

t_stStructre stStruc[2][3] =
{
  {{8, 44, 17,  4},
   {8, 44, 17,  5},
   {8, 43, 17,  6}};
  {{8, 21, 17, 47},
   {8, 20, 17, 48},
   {8, 18, 17, 50}}
 };

2 réponses

Messages postés
3809
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
22 avril 2020
105
Bonjour !

Si c'est du C, tu peux faire ceci:
#include <stdint.h>
#include <stdio.h>

typedef struct
{
  uint8_t W;
  uint8_t X;
  uint8_t Y;
  uint8_t Z;
} t_stStructure;

int main()
{
  t_stStructure stStruc[2][3] =
    {
     {
      {8, 44, 17,  4},
      {8, 44, 17,  5},
      {8, 43, 17,  6}
     },
     {
      {8, 21, 17, 47},
      {8, 20, 17, 48},
      {8, 18, 17, 50}
     },
    };

  for (unsigned long int i = 0; i < sizeof (stStruc) / sizeof (*stStruc); ++i)
  {
      for (unsigned long int j = 0; j < sizeof (stStruc[i]) / sizeof (*stStruc[i]); ++j)
      {
        printf("stTruct[%lu][%lu]={%i,%i,%i,%i}\n", i, j, stStruc[i][j].W, stStruc[i][j].X, stStruc[i][j].Y, stStruc[i][j].Z);
      }
      printf("\n");
  }

  return 0;
}

Messages postés
457
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
30 mai 2020
2
Bonjour,

Le tableau fait 2x3 et ta structure a 4 données. Il faut fournir 2x3x4 données pour le remplir entièrement. C'est bien que tu fais, mais il y a un point-virgule au lieu d'une virgule ligne 13.