Witam,
Nie wiem już - coś się zakręciłem czy jak?
Co się dzieje , że gdy zdefiniuję tak łańcuch:
Gdzie *str jest przed main to wszystko działa OK, mogę zmienić "napis" na "papis", ale gdy spróbuję zrobić to tak:
to już nie udaje mi się ta sama operacja - hmmm muszę gdzieś robić jakiś durny błąd w myśleniu - może ktoś mnie naprowadzić o co chodzi.
W pierwszy przypadku "napis" zostanie utworzony w pamięci RAM w sekcji gdzie leżą sobie zmienne globalne jak domniemuję ale w drugim przypadku ? hmmm na stosie ? czy gdzie ? zresztą obojętnie gdzie to wskaźnik powinien prawidłowo wskazywać i powinienem mieć chyba możliwość dostępu do tej części pamięci RAM.... chyba że właśnie coś mi się pomieszało ?
Nie wiem już - coś się zakręciłem czy jak?
Co się dzieje , że gdy zdefiniuję tak łańcuch:
char *str = "napis";
int main(void) {
*str = 'p';
lcd_str(str);
}Gdzie *str jest przed main to wszystko działa OK, mogę zmienić "napis" na "papis", ale gdy spróbuję zrobić to tak:
int main(void) {
char *str = "napis";
*str = 'p';
lcd_str(str);
}to już nie udaje mi się ta sama operacja - hmmm muszę gdzieś robić jakiś durny błąd w myśleniu - może ktoś mnie naprowadzić o co chodzi.
W pierwszy przypadku "napis" zostanie utworzony w pamięci RAM w sekcji gdzie leżą sobie zmienne globalne jak domniemuję ale w drugim przypadku ? hmmm na stosie ? czy gdzie ? zresztą obojętnie gdzie to wskaźnik powinien prawidłowo wskazywać i powinienem mieć chyba możliwość dostępu do tej części pamięci RAM.... chyba że właśnie coś mi się pomieszało ?