pb concernant les structures - C++ - Programmation
Marsh Posté le 14-08-2005 à 15:11:03
Si je comprends bien, l'éxécutable qui est compilé s'appelle Arberbinaire.exe, et il contient une fonction ArbreBin().
En lisant le titre du message j'ai crû qu'il s'agissait d'un problème avec les "struct", mais apparemment c'est autre chose.
En lisant "au moment de l'execution", j'ai crû que le programme avait été correctement linké, mais le message "Error executing link.exe" montre que ce n'est pas le cas. Le problème se situe avant l'exécution, au moment de l'édition des liens.
Est-ce que vous avez déjà produit des exécutables avant sans problème ?
Est-ce que votre fonction ArbreBin est située dans le même fichier que WinMain ou dans un autre fichier ?
Marsh Posté le 14-08-2005 à 15:20:00
j'ai deja produit des executables sans aucun probleme(c'est pour ca que je pense que l erreur est au niveau du code)
pour la deuxieme question,je ne sais pas le lancer autrement que par "ctrl F5"(en fait je pasee tjs par visual)
voici le dedut de mon code + fonction ArbreBin mon code
#include <stdio.h>
#include <stdlib.h>
//definition des la structure d arbre binaire
typedef struct AbrBin
{
int Racine;
struct AbrBin *SousAbrGauche,*SousAbrDroit;
}AbrBin;
typedef AbrBin *PtrAbrBin;
//declarations des fonctions auxiliaires
extern "C" PtrAbrBin AbrVide();
extern "C" PtrAbrBin ArbreBin(int x,AbrBin *G,AbrBin *D);
extern "C" int EstAbrVide(PtrAbrBin PtrAbr);
extern "C" int Racine (PtrAbrBin PtrAbr);
extern "C" PtrAbrBin SousArbreGauche(PtrAbrBin PtrAbr);
extern "C" PtrAbrBin SousArbreDroit(PtrAbrBin PtrAbr);
extern "C" int Pere(PtrAbrBin PtrAbr,int som);
extern "C" PtrAbrBin SousArbreGaucheDeX(PtrAbrBin PtrAbr,int x);
extern "C" PtrAbrBin SousArbreDroitDeX(PtrAbrBin PtrAbr,int x);
extern "C" int FilsGaucheDeX(PtrAbrBin PtrAbr,int x);
extern "C" int FilsGaucheDeXBis(PtrAbrBin PtrAbr,int x);
extern "C" int FilsDroitDeX(PtrAbrBin PtrAbr,int x);
extern "C" int FilsDroitDeXBis(PtrAbrBin PtrAbr,int x);
extern "C" int MinAbr (PtrAbrBin PtrAbr);
extern "C" int MaxAbr (PtrAbrBin PtrAbr);
extern "C" int Successeur(PtrAbrBin PtrAbr,int x);
extern "C" PtrAbrBin Insertion(PtrAbrBin PtrAbr,int x);
extern "C" void Relier(PtrAbrBin PtrAbr1,int x,PtrAbrBin PtrAbr2);
extern "C" void Remplacer(PtrAbrBin PtrAbr,int x,int y);
extern "C" void Suppression(PtrAbrBin Abr,int x);
extern "C" void AfficherAbrAux(PtrAbrBin PtrAbr,int indent);
extern "C" void AfficherAbr(PtrAbrBin PtrAbr);
extern "C" void Indentation(int n);
//fonction main
int main()
{
PtrAbrBin PtrAbrTest= (PtrAbrBin) malloc (sizeof(AbrBin));
PtrAbrTest=AbrVide();
AfficherAbr(PtrAbrTest);
return(0);
}
//fonction qui renvoie l abr binaire dt la racine est x et dt les sous arbres gauche et droit sont resp G et D
PtrAbrBin AbrBinaire(int x,PtrAbrBin G,PtrAbrBin D)
{
PtrAbrBin PtrAbr;
(*PtrAbr).Racine=x;
(*PtrAbr).SousAbrGauche=G;
(*PtrAbr).SousAbrDroit=D;
return PtrAbr;
}
merci pour l aide
Marsh Posté le 14-08-2005 à 15:26:12
Le problème n'est pas avec ArbBinaire(), mais avec ArbreBin().
ArbreBin() est déclaré sur la ligne du deuxième "extern".
Soit il faut supprimer cette ligne, soit il faut ajouter le fichier qui contient cette fonction dans le projet.
Marsh Posté le 14-08-2005 à 15:31:50
Je te remercie pour l'aide
ouf plus de probleme de compil!!!!
c'est parti pour les tests
Marsh Posté le 14-08-2005 à 14:58:13
On m'a bien dit de bien reflechir avant de poser des questions sur le forum
mais la j en peut plus.Je compile sans erreur,et au moment de l'execution ca
m'indique l'erreur suivante:
Arbrebinaire.obj : error LNK2001: unresolved external symbol _ArbreBin
Debug/Arbrebinaire.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Je comprend pas du tout d'ou ca peut venir
HELP
---------------
mel81