Próbuję zrobić coś naprawdę podstawowego na C, ale wciąż dostaję błąd segmentacji. Wszystko, co chcę zrobić, to zastąpić literę słowa inną literą - w tym przykładzie zastąp L literą L. Czy ktoś może pomóc ci wyjaśnić, gdzie się nie udałem? Powinien to być naprawdę podstawowy problem, po prostu nie mam pojęcia, dlaczego nie działa.Zastąpienie pojedynczego elementu znaku ciąg C
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
char *string1;
string1 = "hello";
printf("string1 %s\n", string1);
printf("string1[2] %c\n", string1[2]);
string1[2] = 'L';
printf("string1 %s\n", string1);
return 0;
}
Na moim wyjściu uzyskać
łańcuch1 cześć
łańcuch1 [2] l
wina Segmentacja
Dzięki!
Łańcuch1 jest wskaźnikiem do pamięci tylko do odczytu (w większości systemów), ponieważ jest to stały inicjator. Nie możesz pisać do tego ciągu bez uprzedniego skopiowania go. – gaige