Besoin d'aide "Segmentation fault"
Salut, j'essaie d'écrire une fonction dans le cadre d'un projet d'étude qui inverse les valeurs d'un tableau et retourne ce tableau. Seulement la console me renvoie "segmentation fault". j'ai donc essayé d'allouer la mémoire de ce pointeur mais sans effet. Si quelqu'un peut m'aider :)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| char* IMPLEMENT(mkReverse)(char *str)
{
int i,j;
int n;
int temp;
while(str[n] != '\0')
{
n = n+1;
}
str = malloc(n*sizeof(char));
for(j=n-1 ,i=0; j>i ; j--,i++)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
return(str);
} |
Code initial presque bon ?
Bonjour,
Tel qu'écrit, même avec les modifications proposées, il reste le problème de n qui est l'indice le plus élevé mais pas le nombre d'éléments (1 de plus).
Par ailleurs, la permutation oublie de remettre un caractère nul en position n. Il n'est alors pas pas étonnant qu'au premier usage de la chaine retournée ça fasse :pan:
Salutations