Bonjour,
j'étais tranquillement en train de coder mon petit projet de c (sous visual) quand tout à coup, à l'exectution j'ai eu une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Exception non gérée à 0x7c911095 dans Visage0001.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00415678.
j'ai vite regarder ce qui n'allait pas et je me suis rendu compte que j'avais pas mal de warning dont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Avertissement	1	warning C4996: 'fopen' a été déclaré désapprouvé	e:/ [...]/projet
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Avertissement	2	warning C4133: 'fonction' : types incompatibles - de 'char [7]' à 'FILE *'	e:\[...]/projet
et tous pleins d'autre dans le même style.

pourtant mon code a l'air de tenir la route puisque c'est ce que j'utilise en général
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Visage* Lecture(char* s_chemin, int* tab_i_priorite, int* p_i_nbvisage)
{
	int i_nbCaracteristiques, i, j; 
	char c_temp;
	int* tab_i_temp[6];	///tableau pour stocker temporairement le visage lu
	int* tab_i_mins[6];	///tableau qui contient les minima de chaque colonne
	int* tab_i_maxs[6];	///tableau qui contient les maxima de chaque colonne
	Visage* tab_visage;
	FILE* p_fichier = fopen(s_chemin, "a");
	fscanf("%d\n%d\n", &(*p_i_nbvisage), &i_nbCaracteristiques); /// lit les deux premieres ligne pour savoir combien de visage 
															///et combien de caracteristiques nous avons dans le fichier
	tab_visage = (Visage*)malloc((*p_i_nbvisage)*sizeof(Visage));
	/// on initialise les tableaux avec le premier visage
	for (j = 0; j < i_nbCaracteristiques; j++)
		{
			fscanf("%d", &tab_i_temp[j]);
			tab_i_maxs[j] = tab_i_temp[j];
			tab_i_mins[j] = tab_i_temp[j];
			fscanf("%c",&c_temp);
		}
	//donne de bonne valeurs a tab_i_priorite
 
 
	fscanf("%c",&c_temp);
	tab_visage[0]=NouveauVisage(tab_i_priorite, tab_i_temp,i_nbCaracteristiques);
 
	for (i = 1 ; i< (*p_i_nbvisage); i++)
	{
		for (j = 0; j < i_nbCaracteristiques; j++)
		{
			fscanf("%d", &tab_i_temp[j]);
			if (tab_i_temp[j] > tab_i_maxs[j])
				tab_i_maxs[j]= tab_i_temp[j];
			if (tab_i_temp[j] < tab_i_mins[j])
			tab_i_mins[j] = tab_i_temp[j];
			fscanf("%c",&c_temp);
		}
		fscanf("%c",&c_temp);
		tab_visage[i]=NouveauVisage(tab_i_priorite, tab_i_temp,i_nbCaracteristiques);
	}
	return tab_visage;
}
Ayant eu deja pas mal de problèmes avec visual, j'ai tenté de compiler avec Dev C++ et j'ai aussi un bug a l'execution et les warning que j'ai correspondent aux scanf de ma fonction... Un truc dans le style l'argument 1 ne correspond pas au pointeur de l'argument 2.
Ca fait une heure que je cherche mais je comprend pas ces erreurs... Si une ame charitable savait de quoi il retourne.
Merci beaucoup