Bonjour � tous,

Je sais que c'est un probl�me assez classique, mais, malgr� mes recherches, je n'ai trouv� aucune solution. En fait la compilation de mon code se passe avec succ�s, mais lors de l'ex�cution j'ai ce message d'erreur qui s'affiche:

Exception non g�r�e � 0x00a3a6f9 dans graphe.exe*: 0xC0000005: Violation d'acc�s lors de la lecture de l'emplacement 0xcccccccc.


J'utilise Visual Studio 2010 et voici la fonction utilis�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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
graphe::graphe(char* NomFichier)
{
    ifstream fichier(NomFichier);
    string ligne;
 
	int num = 1;
	while(getline(fichier, ligne) && num<=2)
	{
		if(num == 1) // Si num = 1, alors on lit la première ligne du fichier qui contient le tableau fs
		{
			int j = 0;
			for(int i=0; i<ligne.length() ; i++)
			{
				if(ligne[i]!='\n')
				{
 
					string tmp;
					tmp=ligne[i];
					if(i+1<ligne.length())
						i++; // Pour être positionné au caractère suivant
					while(ligne[i]!=';' && i<ligne.length())
					{
						tmp = tmp+ligne[i];
						i++;
					}
					if(i==0)
					{
						fs=(int*)malloc(atoi(tmp.c_str())+1);
					}
					fs[j]= atoi(tmp.c_str());
					j++;
				}
			}
		}
		else
		{
			if(num==2) // Si num=2, alors il s'agit de la 2è ligne du fichier qui contient le tableau aps
			{
				int j = 0;
				for(int i=0; i<ligne.length() ; i++)
				{
					if(ligne[i]!='\n')
					{
						string tmp;
						tmp=ligne[i];
						if(i+1<ligne.length())
							i++; // Pour être positionné au caractère suivant
						while(ligne[i]!=';' && i<ligne.length())
						{
							tmp = tmp+ligne[i];
							i++;
						}
						if(i==0)
						{
							aps=(int*)malloc(atoi(tmp.c_str())+1);
						}
						aps[j]= atoi(tmp.c_str());
						j++;
					}
				}
			}
		}
		num++;
	}
 
	fichier.close();
}
Voici maintenant mon fichier main:

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
#include "graphe.h"
 
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char* NomFichier = "essai.txt";
 
	graphe g(NomFichier);
 
	for(int i=1; i<=g.fs[0];i++)
		cout<< g.fs[i] << " ";
	cout<<endl;
 
	for(int i=1; i<=g.aps[0];i++)
		cout<< g.aps[i] << " ";
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Je pr�cise que fs[0] contient le nombre d'�l�ment du tableau fs -1 (sans la premi�re case donc) et idem pour le tableau aps.

Ce que la fonction graphe est cens� faire est, � partir du fichier txt, mettre les nombres de la 1� ligne dans le tableau fs et ceux de la deuxi�me dans le tableau aps. Ces nombres sont s�par�s par des points virgules.

Merci d'avance.