Access violation lors de l'overture d'un fichier

dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009 - 25 août 2008 à 10:10
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009 - 26 août 2008 à 15:09
salut tout le monde,
voici mon code,
for (int kt = 0; kt < numTrafficTypes_; ++kt)
{
 for (int i = 0; i < max_n_users[kt]; ++i)
 {
FILE *fin1=fopen("D:\\oppack\\min_inter_tti.txt","rb");
counter++;
while(!feof(fin1))
{
  lu=fscanf(fin1,"%d %d",&UE_categorie1,&min_inter_tti);
  if ( UE_categorie1==categorie)
  {
      tab1.Min_inter_TTI=min_inter_tti;
      break;


  }


}
  fclose(fin1);
.............
tout marche tres bien,mais une fois counter atteint 1744 jobtients une erreur:EAcess Violation at adress ....write of adress.....
est-ce que quelqu'un peut m'aide !
merci d'avance

12 réponses

cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
25 août 2008 à 13:55
Bonjour,
a mon avis. tu ouvre une seule fois le fichier au début avant le "for". aprés tu le ferme une fois ta fini. d'un autre coté la dimension de ton tableau doit étre >= nombre de données que tu vas extraire  du fichier et normalement si ta pas d'autre  prob de dimension ça devrait marché.
boncourage
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
25 août 2008 à 14:11
C'est à quelle ligne que se produit l'erreur?
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
25 août 2008 à 14:12
Merci beaucoup,mon programme marche tres bien
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
25 août 2008 à 14:17
ca ete produit a la ligne:FILE *fin1=fopen("D:\\oppack\\min_inter_tti.txt","rb");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
25 août 2008 à 15:11
alors c t le coup de openfile avant for ou autre chose?
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
25 août 2008 à 15:24
je suis entrain de remplir un vecteur de queue exp;
queue q;
std::vector<queue > table_queue;
lorsque je veux remplir table_queue[i] j'ai besoin de faire table_queue.push_back()!!!!
est ce que quelq'un a une autre idee ne prenant pas beaucoup de temps!
merci d'avance encore une fois!!!!
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
25 août 2008 à 15:27
no ca ete autre chose que j'ai cru que ca ete resolu mais maintenant ca persiste a donner le meme erreur
0
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
25 août 2008 à 15:30
tu peux utiliser les iterator c plus interessant. au moins tu sais ou t'ajoute pas comme push_back() ça fait qu'empiler sur la fin . de toute façon t obligé d'un itertor pour reparcourir ta queu lol :). 
example:
vector v;
for (vector::iterator it = v.begin(); it!=v.end(); ++it) {
    cout << *it << endl;
}
boncourage
0
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
25 août 2008 à 15:32
écoute lol. explique ce que tu ve faire lol.
boncourage
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
25 août 2008 à 15:48
lol!voila ce qui arrive vraiment!!!
a chaque fois que je traverse les deux boucle:
for (int kt = 0; kt < numTrafficTypes_; ++kt)
{
 for (int i = 0; i < max_n_users[kt]; ++i)
 {
FILE *fin1=fopen("D:\\oppack\\min_inter_tti.txt","rb");
counter++;

.........
j'ai des parametres que j'alloue en memoire a la fin comme par exemple:
 a[kt].b[i].c[j]=(int*)calloc(a[kt].b[i].d[j]*100, sizeof(int));
    if (!a[kt].b[i].c[j]) return false;
quand ja'i obtenu l'erreur access violation j'ai eu recours a faire:a[kt].b[i].d[j]*200 et ca a marche!
est ce que ca peut etre un probleme d'allocation de memoire???
0
cs_neone Messages postés 96 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 mars 2011
26 août 2008 à 12:00
vazy molo avec les allocations de mémoire. t déja en 4 dimensions si je ne me trompe pas. enfin a mon avis  c ke ta mal défin tes  tableau
0
dud1410 Messages postés 31 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 9 novembre 2009
26 août 2008 à 15:09
merci beacoup, encore une fois!!!!!
eh a la prochaine
0
Rejoignez-nous