Violation d'accès
haninoun12
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
haninoun12 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
haninoun12 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis débutante en langage c et j'ai fait une fonction récursive qui cherche les occurrences dans un tableau non trié, et les supprimer en décalant les cases.. je ne sais pas si il ya une faute dans ma fonction car le programme demarre mais quand je choisis cette fonction, tout s'arrète et on m'affiche :
.
Exception non gérée à 0x003D1DF1 dans testsTP1.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x00250000.
.
si vous pouvez m'aider s'il vous plait...??
.
J'utilise visual studio express 2012
voici ma fonction:
.
Exception non gérée à 0x003D1DF1 dans testsTP1.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x00250000.
.
si vous pouvez m'aider s'il vous plait...??
.
J'utilise visual studio express 2012
voici ma fonction:
void suppressionSequentielle(int tableau[],int taille,int occurrences){ int k = 0, j = 0, i = 0; if(taille < 2){ return; } for(i = taille-1; i > 0 ; i--){ for(j = i-1; j >= 0 ; j++){ if(tableau[i] == tableau[j]){ for(k = i; k < taille ; k++){ tableau[j+1] = tableau[k+1]; } occurrences++; taille -= occurrences; } } } }
A voir également:
- Violation d'accès
- Acces rapide - Guide
- Accès refusé - Guide
- Trousseau d'accès iphone - Guide
- Accès presse papier - Guide
- Je n'ai plus acces a ma boite mail gmail - Guide
2 réponses
Hello,
dans la dernière boucle :
Tu arrête la boucle au moment où
Donc à la dernière itération, k sera égal à taille-1.
Mais dans la boucle tu fais référence à
Donc dans la dernière itération, ça devient
Les indices commençant à zéro dans un tableau,
dans la dernière boucle :
for(k = i; k < taille ; k++){
tableau[j+1] = tableau[k+1];
}
Tu arrête la boucle au moment où
k==taille(condition
k<taillenon remplie, la boucle s'arrête).
Donc à la dernière itération, k sera égal à taille-1.
Mais dans la boucle tu fais référence à
tableau[k+1].
Donc dans la dernière itération, ça devient
tableau[taille-1+1]autrement dit
tableau[taille].
Les indices commençant à zéro dans un tableau,
tableau[taille]fait d'office référence à un élément hors du tableau. Et là ton programme accède à un emplacement mémoire qui ne lui est pas attribué, d'où erreur.
Bonjour,
Merci de ne pas créer de doublon. Tu as déjà créer ce post ici : https://forums.commentcamarche.net/forum/affich-32755172-supprimer-occurrences-dans-un-tableau#p32755610
Autant continuer sur cette conversation, ça sera plus simple pour tout le monde.
Google is your friend
Merci de ne pas créer de doublon. Tu as déjà créer ce post ici : https://forums.commentcamarche.net/forum/affich-32755172-supprimer-occurrences-dans-un-tableau#p32755610
Autant continuer sur cette conversation, ça sera plus simple pour tout le monde.
Google is your friend
mais c la meme chose..
j'ai commenté la boucle i (la premiere ) et sa casse pas mais la fonction ne fait rien .. :/