Я возвращаюсь в c ++ и имею представление о указателях и тому подобное, однако я надеялся, что смогу получить некоторую помощь в понимании того, почему этот сегмент кода выдает ошибку шины.
char * str1 = "Hello World";
*str1 = '5';
ОШИБКА:Ошибка шины: (
И вообще, мне интересно, как изменить значение одного символа в cstring. Поскольку я понимаю, что * str = '5' должно изменить значение, на которое указывает str, сОт «H» до «5». Поэтому, если бы я должен был распечатать str, он бы выглядел: «5ello World».
В попытке понять, я также написал этот фрагмент кода, который работает, как и ожидалось;
char test2[] = "Hello World";
char *testpa2 = &test2[0];
*testpa2 = '5';
Это дает желаемый результат. Так в чем же разница между testpa2 и str1? Разве они оба не указывают на начало серии символов с нулевым символом в конце?