Lors du tri d'un tableau à l'aide d'un algorithme appelé tri de tubes, je l'ai implémenté et quand je l'ai exécuté, j'ai une erreur de segmentation. Même si j'ai cherché sur le net et là où aucune erreur similaire, j'ai décidé de poster ici. Cette erreur aurait pu être parce que j'ai mis la taille du tableau aux dans la boucle for à la taille du tableau, y at-il une meilleure façon d'écrire ce code? Voici la source.Segmentation Fault on sort
#include <stdio.h>
void TuborSort(int* array) {
int aux[5] = { 0, 0, 0, 0, 0 };
int i;
for (i = 0; i < sizeof(array); i++) {
aux[array[i]]++;
}
int j = 0;
for (i = 0; i < 5; i++) {
while(aux[i]-- > 0) {
array[j++] = i;
}
}
}
int main() {
int array[6] = {2, 5, 1, 4, 1};
int i;
TuborSort(array);
for (i = 0; i < sizeof(array); i++)
printf("%d ", array[i]);
return 0;
}
taille de tableau est 6 ... la taille des aux est 5 – maditya
'int * array' -> sizeof (array) // comme taille de pointeur – BLUEPIXY
7 downvotes? !! Pourquoi ? – cnicutar