Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1031 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Manipulations des Tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Manipulations des Tables

n°1635705
Redeka
Posté le 02-11-2007 à 18:57:00  profilanswer
 

Bonjour.
 
Dans le cadre d'un projet scolaire, je dois creer un jeu d'Awalé en cpp
 
J'utilise pour ce faire une table bidimensionnelle de type int Table[2][7]
en cours de jeu, Table[i][j] renvoie à la j-éme case du (i-1)e joueur, Table[i][0] à ce qu'il a déjà collecté.
 
Au cours du jeu, nous utilisons diverses fonctions qui modifient la table (par exemple pour ramasser, pour distribuer, etc...)
 
mes definitions de ces fonctions sont donc de type:
 

Citation :

int** Nomfonction(int Table[2][7], *autres parametres*){
...
return Table;
}


 
à la ligne de "return Table;" le compilateur (devcpp pour ne pas le nommer) me sort:

Citation :

invalid conversion from `int (*)[7]' to `int**'


 
Dans le meme genre (ou presque), lorsque je dois utiliser la fonction, mon

Citation :

Table=Nomfonction (Table, *autres parametres*)

rappelle:

Citation :

incompatible types in assignment of `int**' to `int[2][7]'


ou

Citation :

invalid conversion from `int**' to `int (*)[7]'


(selon son humeur)
 
j'ai essayé de ne mettre que "int" au lieu de "int**" (on sait jamais) mais sans succès...
 
Plus etonnant, lorsque j'essaye de finter le compilateur, en transformant ma table bidim en une table unidim (table[i][j] devenant table[i*7+j]) j'ai les memes erreurs (aux arguments pres...)
 
Question: existe-t'il une syntaxe correcte que j'aurais oubliée, ou bien est-ce que tout simplement, une table etant considérée comme un ensemble d'elements, une fonction ne peut pas en ressortir?
Dans le premier cas, les réponses vont se limiter à un classique "eh gamin, voilà la syntaxe correcte" ce à quoi je repondrais "merci beaucoup", tout misérable de pas m'etre rappellé ça, et dans le second, je serais plus embetté...
J'ai pensé -en cas de secours- à utiliser des pointeurs, mes fonctions se transformant alors en "void"... mais j'ai peur que ce soit assez "lourd", puisqu'au final ça fait 14 pointeurs (2*(6+1)) à gerer..
 
Merci d'avance pour m'aider à resoudre ce problème que je ne devrais pas avoir  :pfff:


---------------
~il Re~
mood
Publicité
Posté le 02-11-2007 à 18:57:00  profilanswer
 

n°1636238
bigears
Posté le 04-11-2007 à 01:15:13  profilanswer
 

int** Nomfonction(int Table[2][7], *autres parametres*){  
...  
return Table;  
}
 
-> int Table[2][7] : zone de 2x7 entiers à l'adresse mémoire Table
si tu retourne table (l'adresse du premier entier du tableau), la signature de la fonction doit être int*

n°1636284
Joel F
Real men use unique_ptr
Posté le 04-11-2007 à 10:50:18  profilanswer
 

std::vector c'est pas fait pour les chiens aussi :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Manipulations des Tables

 

Sujets relatifs
[Access] Soustraire deux tablesOpera et le layout des tables
relation entre tablesMySQL - Optimiser le lien entre deux tables
Requete MySQL sur deux tables liées[RESOLU] Trier sur deux tables
Elimination des doublons d'un Select sur 4 tablesSynchroniser tables de deux bases de données en VB.NET
Duplication de tables entre MSDE et SQL server 2000Multi-index et grosses tables
Plus de sujets relatifs à : Manipulations des Tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR