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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Unhandled Exception in Orion.exe oxc..... Access Violation
Voici l'entierté de la fonction plus la fonction appelée.

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);
}
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