Błąd segregacji podczas zapisywania do ciągu [duplikat]
To pytanie ma już odpowiedź tutaj:
Dlaczego dostaję błąd segmentacji podczas zapisu do łańcucha zainicjowanego przez „char * s”, ale nie „char s []”? 17 odpowiedziPróbuję napisać lokalną funkcję odwrotną i prawie dokładnie śledziłem kod online, ale uruchomienie następującego programu powoduje błąd magistrali. Czy przekazuję niewłaściwy rodzaj argumentu do reverse ()?
void reverse(char *str) {
char * end = str;
char tmp;
if (str) {
while (*end) {
++end;
}
--end;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
int main() {
char *s = "sample";
reverse(s);
printf("%s\n");
return 1;
}