barucca | Bonjour a tous,
je travaille sous C++ builder 5.2, lorsque je compile mon code tout se passe bien, mais lorsque je le lance j'ai des violations d'acces et je ne comprend pas à quoi ça correspond comme problème: si mon code n'est pas bon ou si j'ai un problème de mémoire ou autre...
je vous met la partie du code qui me fait les violations d'accés, j'ai marqué en commentaire où elles se manifestent le plus souvent, mais c'est aléatoire :
Code :
- void MaClasse::MaFonction ()
- {
- TWindow *Window = NULL;
- TWindow *WindowTest = NULL;
- char far * str = NULL;
- int maxCount, maxCountTest, verif;
- char filename[20];
- char recherche [40];
- int flag;
- FILE *fp = NULL;
- str = new char far;
- fp = new FILE;
- Window = new TWindow(this);
- WindowTest = new TWindow(this);
- flag = 0;
- //recherche du type de fichier
- WindowTest = GetWindowPtr(GetActiveWindow());
- maxCountTest = WindowTest->GetWindowTextLength();
- WindowTest->GetWindowText(str,maxCountTest);
- strcpy(recherche, str);
- delete WindowTest; // violation d'acces ici
- for (int i=0; i<40; i++)
- {
- if (recherche[i]=='[')
- {
- if(recherche[i+1]=='L')
- {
- flag = 0;
- break;
- }
- else if (recherche[i+1]=='C')
- {
- flag = 1;
- break;
- }
- else
- {
- flag = 2;
- break;
- }
- }
- }
- //traitement
- if (flag == 1)
- {
- Window = GetActiveMDIChild()->GetClientWindow();
- maxCount = Window->GetWindowTextLength();
- strcpy(filename,"C:\\test\\test.txt" );
- if ((fp = fopen(filename, "w+" )) == NULL)
- {
- fprintf(stderr, "Erreur à l'ouverture du fichier %s en mode w+.\n\n", filename);
- exit(1);
- }
- verif = (Window->GetWindowText(str,maxCount));
- if(verif!=0)
- {
- fprintf(fp, "%s", str);
- }
- else
- {
- fprintf(fp, "il n'y a pas de texte" );
- }
- fclose(fp);//violation d'acces ici
- delete fp;//violation d'acces a tous les "delete"
- delete str;
- delete Window;
- }
- else
- {
- suite.....
- }
- }
|
Quelqu'un a t'il le courage de me donner un coup de main??
Merci Message édité par barucca le 22-03-2005 à 18:48:51
|