Ce code est le noyau Linux utilise pour dépouiller espaces avant et après sur une chaîne:C bande de chaîne blancs renvoie une erreur de segmentation (core dumped)
char *strstrip(char *s)
{
size_t size;
char *end;
size = strlen(s);
if (!size)
return s;
end = s + size - 1;
while (end >= s && isspace(*end))
end--;
*(end + 1) = '\0';
while (*s && isspace(*s))
s++;
return s;
}
Ici, j'utiliser comme tel:
int main(void){
/* strip test*/
char buffer2[60];
char* testy2 = buffer2;
testy2 = " THING! ";
printf("The stripped string: \"%s\"\n",strstrip(testy2));
return 0;
}
Le programme compile bien, mais lorsqu'il est exécuté, il déclare:
Segmentation fault (core dumped)
Pourquoi cela se passe-t-il?
Merci. Ça fonctionne maintenant. – turnt