1 pièce(s) jointe(s)
Problème Segmentation Fault
je dois faire un petit exercice où on demande de trier un tableau d'entier dans l'ordre croissant en utilisant une méthode "swap" qui prend comme argument 2 pointeurs sur des entiers pour les inverser. le problème c'est que directement après avoir initialiser mon tableau avec des entiers quelconques, le programme plante et affiche : Segmentation Fault
je n'arrive pas à voir d'où vient le problème, donc si qqu'un peut m'aider c'est sympa. j'ai joint mon code et j'ai indiqué où ça plante exactement!(je vous l'ai mis aussi ci-dessous, c'est pas très lisible mais bon il est très court)
Code:
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
| #include <stdio.h>
#define NEL 10
void swap(int* a, int* b);
int main() {
int tab[NEL];
int i = 0;
int j = 0;
printf("entrer les 10 valeurs à trier : \n");
for (i = 0; i < NEL; ++i) {
scanf("%d", &tab[i]);
}
/*erreur après la boucle ci-dessus quand j'entre la 10ième valeur : segmentation fault*/
printf("ce message ne s'affiche pas, le programme plante avant");
for (i = 0; i < NEL-1; ++i) {
for (j = i+1; i < NEL; ++j) {
if (tab[i] > tab[j]) {
swap(&tab[i], &tab[j]);
}
}
}
for (i = 0; i < NEL; ++i) {
printf("%d ", tab[i]);
}
}
void swap(int* a, int* b) {
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
} |