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

C++ problème avec les structures

N_Cortex
N_Cortex
Niveau 7
24 juillet 2005 à 21:33:31

J´ai fait ceci :

struct personnage perso;

et voici ma structure :

struct personnage
{
struct inventaire objet[15];
struct sorts sort[10];
string nom;
string nom_travail;
int exp;
int exp_max;
int lvl;
int travail;
int pv;
int pv_max;
int mana;
int mana_max;
int force;
int agilite;
int magie;
};

Mais quand je veux compiler mon programme ( je suis sous devc++) il me dit :
aggregate `personnage perso´ has incomplete type and cannot be defined

J´ai un autre problème, toujours avec les structures :

J´ai fait ceci :

struct c_ennemi ennemi[11];

Mais pareil, quand je compile, il me dit :

elements of array `c_ennemi ennemi[11]´ have incomplete type

Ptival
Ptival
Niveau 10
24 juillet 2005 à 21:38:37

Hum...Comment cela est organisé ?

Tu déclares bien perso après la déclaration de la structure ?
Ta structure est bien définie dans le même fichier ? Ou dans un header ? Le header est-il bien inclus ?

tomtomclancy
tomtomclancy
Niveau 9
25 juillet 2005 à 08:14:07

si c´est en C++ pour la declaration t´es pas obligé de mettre struct devant example

typedef struct {
float x,y,z;
} t_vect;

tu declare simplement
t_vect A;
t_vect B;

etc... tu peux meme ajouter des methodes dans ta structure, comme les operateurs de base, c´est toujours utile.

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 09:47:14

Ta structure a l´air correcte. Cependant elle contient des sous structures. Sont elles correctes aussi ?
Peux tu nous montrer les structures :

struct inventaire
struct sorts

?

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 10:56:34

Ptival
Posté le 24 juillet 2005 à 21:38:37
Hum...Comment cela est organisé ?

Tu déclares bien perso après la déclaration de la structure ?
Ta structure est bien définie dans le même fichier ? Ou dans un header ? Le header est-il bien inclus ?

Effectivement, ma structure était mal placée. Mais maintenant, il me dit ceci pour la structure perso :
multiple types in one declaration

Je comprends pas trop où est le problème... Pourquoi me dit-il qu´il y a une erreur alors qu´il est très bien possible de mettre plusieur types dans une déclaration, non ?

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:10:28

wall ton code sur http://rafb.net
et envoie le lien :)

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 11:17:41

Voila voila :

http://rafb.net/paste/results/LVv9rP62.html

J´essai de m´entrainer avant de commencer les librairies SDL, donc je fais un petit RPG sur console.

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:26:22

je regarde ça.
Cependant, je vois déja une erreur : tu n´as pas fait #include < string>
ça change qq chose si tu le mets ?

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:27:31

--> Met un ; a la fin de ta 2e structure :-)
ça marche ?

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 11:31:38

Oui, ça marche. Il y a d´autres bugs, mais je vais essayer de les régler tout seul.

Par contre, je crois pas qu´il est dit dans ton tuto qu´il faut faire " include < string>" pourr pouvoir se servir du type string...

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:38:34

http://perso.numericable.fr/~fvirtman/info/tuto/F_2_01_stlstring1.cpp

vrai :) cependant, le #include apparait quand meme dans le prog ! :-)

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 11:39:40

Ah oui tiens ! ! Je pense qu´il serait quand meme bon de le signaler.

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:43:46

Voila chef :hap:
la mise a jour a été faite ! c´est maintenant dit explicitement dans le tuto que je viens de te montrer ! :-)

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 11:49:08

:lol:

Par contre, est-ce qu(il y a une limite d´arguement dans une fonction ? Par ce que j´ai fait ça :

void combat(string name,int life,int f,int a,int nb)

et il me dit :
too few arguments to function `void combat(std::string, int, int, int, int)´

Ptival
Ptival
Niveau 10
25 juillet 2005 à 11:51:40

Tu as mis :

combat("Brigand", 10, 3, 2);

Hors tu déclares ta fonction avec :

void combat(string name,int life,int f,int a,int nb) ;

Donc il te manque un argument dans l´appel ! :)

N_Cortex
N_Cortex
Niveau 7
25 juillet 2005 à 11:57:23

Ah oui, c´est vrai, quand j´ai rajouté nb dans mes arguments, j´ai oublié de l´ajouté dans l´appel ! ! :nonnon:

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 11:58:17

N_Cortex > tout a fait, Ptival a raison :-)

Limite ? lol ! non :))
Aucune limite en quoique ce soit !

J´ai un collegue de boulot ( pourtant il est baleze quand il fait un programme, mais il est violent : )
il fait :
- des structures avec 15 fois + de données que toi
- des fonctions des + de 800 lignes
- des fichiers de + de 30000 lignes
- des fonctions avec 30 arguments passés...

Et le compilo ne bronche pas le moins du monde :lol:

La seule fois ou on a réussi a le faire broncher, c´est quand on a déclaré :

int data[] = {3,8,456,31, . ... , 156};

on a mis + de 100000 valeurs rentrées en dur dans un tableau, la, le compilo a gueulé ! :)
Autant :

int data[1000000]; / / ça passe bien
int * data = new int[1000000]; / / nickel aussi

mais quand c´est rentré direct en dur, la, ça chie :-)

  • J´entends déja les gens qui vont me dire " quoi ? t´a tapé 1000000 valeurs ? ???"

et je répondrai : " non, j´avais fait un programme qui générait du code C++ . .." le but était de rentrer un fichier externe en HARD :rire:
Par contre, ça marche si tu fais plusieurs tableaux :)
bref...

godrik
godrik
Niveau 30
25 juillet 2005 à 12:14:21

-des fonctions des + de 800 lignes

arf! c´est un peu gore ca! :)

int data[] = {3,8,456,31, . . .. , 156};
on a mis + de 100000 valeurs rentrées en dur dans un tableau, la, le compilo a gueulé !

Ah ouais, c´etait quel compilateur ?

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 12:18:26

VC++ 6.0

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2005 à 12:20:10

autre limite que j´ai testé : celle de la pile d´appel de fonctions : j´ai fait une fonction récursive sans fin, qui compte son propre nombre d´appel avec un bete printf : j´ai planté a 2000 je crois par stack overflow...
mais bon, avoir 2000 appels de fonctions empilés, faut etre violentissime, lol !

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