Bonjour tout le monde,
Je suis en train de réviser pour mon examen de C pour la semaine prochaine.
Je suis sur cette ligne ;
Elle me pose problème car elle ne passe pas, j'obtiens ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part TVaisseau* VaisseauTrouve = (TVaisseau*)_lfind(&VaisseauRecherche,Tab.Tableau,(unsigned int*)&(Tab.Nombre),sizeof(TVaisseau),Vaisseau_Comparer);
Voici l'entierté de la fonction plus la fonction appelée.Unhandled Exception in Orion.exe oxc..... Access Violation
Je présûme que j'essaie d'écrire dans une zone mémoire protégée mais comment résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 long TabVaisseaux_Rechercher(const TTabVaisseaux& Tab, const char* Nom) { if (Tab.Nombre == 0) return -1; TVaisseau VaisseauRecherche; VaisseauRecherche.Nom = (char*)Nom; TVaisseau* VaisseauTrouve = (TVaisseau*)_lfind(&VaisseauRecherche,Tab.Tableau,(unsigned int*)&(Tab.Nombre),sizeof(TVaisseau),Vaisseau_Comparer); if (VaisseauTrouve == NULL) return -1; return VaisseauTrouve - Tab.Tableau; return -1; } int Vaisseau_Comparer(const void* p1, const void* p2) { const TVaisseau* e1 = (const TVaisseau*)p1; const TVaisseau* e2 = (const TVaisseau*)p2; return strcmp(e1->Nom,e2->Nom); }
Si vous avez besoin de plus de code, n'hésitez pas.
Merci d'avance pour votre aide.
beegees
Partager