Syntaxe typedef, structure et 2 dimensions

Résolu
amfrey95 Messages postés 6 Date d'inscription mercredi 22 avril 2020 Statut Membre Dernière intervention 3 octobre 2023 - Modifié le 22 avril 2020 à 17:02
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 28 avril 2020 à 10:46
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
22 avril 2020 à 17:12
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;
}

0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 11
28 avril 2020 à 10:46
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.
0
Rejoignez-nous