CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Variable dans tableau en C ?

Chweps
Chweps
Niveau 10
02 août 2011 à 10:05:12

:salut:

J'aimerais savoir s'il est possible de passer en paramètre d'une fonction un élément d'un tableau.
J'ai déclarer en variable globale octet2 et mon tableau.

int octet2 = 0;
int order_frames[6][200] =
{
{
0x00,
0x0A,
0x00,
0x0A,
,...
octet2
};
}

et j'appelle cette fonction où j'aimerais tester différentes valeur de octet2.

int Test_focus_to_octet2_begin_min (int octet2, int num_step)

Mais j'ai cette erreur :
"automate.c", line 1102: error: expression must have a constant value

:svp:

tbop2
tbop2
Niveau 10
02 août 2011 à 10:11:26

Sans le code c'est vachement pratique.

Peux tu traduire l'erreur en francais ?

Chweps
Chweps
Niveau 10
02 août 2011 à 10:15:05

Je vois bien que l'expression doit avoir une valeur constante mais j'ai justement besoin qu'elle soit variable pour la mettre en paramètre de ma fonction. Ce qui ne sera pas le cas si je met un const ou define.

tbop2
tbop2
Niveau 10
02 août 2011 à 10:58:22

Ben change le prototype de la fonction alors ?

tbop2
tbop2
Niveau 10
02 août 2011 à 10:58:54

Cela dit je tiens une fois de plus a te dire qu'on parle dans le vent : on a pas le code :) !

Bunyan
Bunyan
Niveau 17
02 août 2011 à 11:00:36

Intéresse-toi à la notion de pointeur.

tbop2
tbop2
Niveau 10
02 août 2011 à 11:01:00

A mais j'avais pas vu c'est du C donc normalement const n'existe pas cela doit venir d'autre chose.... encore une fois sans le code : on est pas des devins :ok:

kolido
kolido
Niveau 9
02 août 2011 à 11:33:02

Pastebin.

hyrulink2
hyrulink2
Niveau 7
02 août 2011 à 11:54:30

Si on avait rien que la ligne de l'erreur ça aiderai beaucoup déjà.
Les erreurs de ce type arrivent souvent quand on essaie de déclarer un tableau à taille variable ou de mettre une variable dans un tableau à sa définition en ANSI C, ce que tu essaie de faire quand tu initialise order_frames.
Essaie de passer en C99 ou si tu peux pas, assigne octet2 manuellement après l'initialisation du tableau. Je pense pas que ça vienne de la fonction.

Chweps
Chweps
Niveau 10
02 août 2011 à 12:19:45

Je vais tester avec les pointeurs, j'y avais pas pensé.

tbop2
tbop2
Niveau 10
02 août 2011 à 13:24:01

Mais c'est n'importe quoi essaye rien du tout on sait meme pas ce que tu as ecrit ! :)

Bunyan
Bunyan
Niveau 17
02 août 2011 à 14:00:30

J'appuie tbop2.
Passe-nous ton code.

Ton truc me paraît typiquement un "soucis" de pointeur, mais sans code, il est strictement impossible de t'aider.
Les boules de cristal de fonctionne pas.

hyrulink2
hyrulink2
Niveau 7
02 août 2011 à 15:42:34

Pointeurs ou pas, son code n'est même pas de l'ANSI C valide donc sa risque pas de compiler si il est pas en C99, ce qui semble être le cas...
Essaie au moins de mettre:

int octet2 = 0;
int order_frames[6][200] =
{
{
0x00,
0x0A,
0x00,
0x0A,
,...
0
};
}
order_frames[index1][index2] = octet2;

à la place de

int octet2 = 0;
int order_frames[6][200] =
{
{
0x00,
0x0A,
0x00,
0x0A,
,...
octet2
};
}

avec index1 et index2 les index de octet2.

gordon120211
gordon120211
Niveau 2
08 août 2011 à 22:26:26

nt octet2 = 0;
int order_frames[6][200] =
{
{
0x00,
0x0A,
0x00,
0x0A,
,...
octet2
};

tu trouve pas qu'il y a déjà quelque chose de bizarre, tu déclare que octet2=0 mais après tu utilise des hexadécimales dans ce cas la en premier octet2=0x00 pour être plus juste, et ce n'est pas un int mais un char du coup.
Enfin après je sais pas si sa marchera mieux mais moi je vois déjà ça comme petite erreur.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment