Problème d'Access Violation avec lfind
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 ;
Code:
TVaisseau* VaisseauTrouve = (TVaisseau*)_lfind(&VaisseauRecherche,Tab.Tableau,(unsigned int*)&(Tab.Nombre),sizeof(TVaisseau),Vaisseau_Comparer);
Elle me pose problème car elle ne passe pas, j'obtiens ce message d'erreur :
Citation:
Unhandled Exception in Orion.exe oxc..... Access Violation
Voici l'entierté de la fonction plus la fonction appelée.
Code:
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);
} |
Je présûme que j'essaie d'écrire dans une zone mémoire protégée mais comment résoudre ce problème ?
Si vous avez besoin de plus de code, n'hésitez pas.
Merci d'avance pour votre aide.
beegees