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++] Appel Fonction (Tableau Objet)

elhuron
elhuron
Niveau 6
26 décembre 2007 à 22:22:08

Bonsoir :)

J´ai quelques problemes pour appeler une fonction.
J´ai, a la base, un tableau d´objets et un pointeur de tableau d´objets.Je veux, dans une fonction, les modifier, pour cela j´envoi leurs adresses, et la fonction utilise un pointeur.

J´envoie en parametre soit l´adresse d´un tableau d´un objet, soit l´adresse d´un pointeur d´un tableau d´un objet.
Je n´ai pas de probleme lorsque je n´ai pas de tableau, mais il se trouve que j´en ai besoin, et c´est galere...

///CODE

//fonctions
void fonction(A* m[ ]);
//surcharge
void fonction(A** m[ ]);

//Classe A
class A
{
...
};

//Creations des objets
A b[4] = {A(...), A(...), A(...), A(...)};
A *c[5];

//Allocations Dynamiques
for(int i=0 ; i<5 ; i++) {
c[i] = new A(...); }

//Appel aux fonctions
fonction(&b);
fonction(&c);

///FIN DU CODE

Erreurs :

No matching function for call to fonction(A (*)[4])
-Candidates are
-void fonction(A**)
-void fonction(A***)

No matching function for call to fonction(A* (*)[5])
-Candidates are
-void fonction(A**)
-void fonction(A***)

J´ai essayé avec les references, un erreur encore pire que celle la, donc bon j´utilise les pointeurs.
Merci de m´aider, la reponse est peu etre toute bete.
J´espere ne pas avoir fait de fautes dans mon exemple.

elhuron
elhuron
Niveau 6
27 décembre 2007 à 10:54:07

J´ai résolu le probleme en procédant autrement, au lieu d´envoyer le tableau, j´envoi juste un objet.
Et j´utilise les réferences.
Le probleme vient du tableau je pense.

Si vous avez la solution a mon probleme précédant, n´hesitez pas a me l´indiquer.
Contourner le probleme n´est pas le résoudre totalement... :(

dnob700
dnob700
Niveau 10
27 décembre 2007 à 15:53:02

quand tu ecris A *c[5) (il n´y a pas de crochet fermant sur les claviers du pays ou je me trouve) ce n´est pas un pointeur vers un tableau, mais un tableau de pointeur que tu cree.

Pour avoir un pointeur de tableau, ecrit :
A** c;
c = new A*[5) ou A[5)* peut-etre.

elhuron
elhuron
Niveau 6
28 décembre 2007 à 11:22:48

Merci pour l´info dnob! :)

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