Если вы измените это, то someString
станет указателем на строковый литерал только для чтения:
char *someString = "Hi there, I'm bad at this.";
к этому, что делает someString
модифицируемым массивом char
, инициализируется из строкового литерала:
char someString[] = "Hi there, I'm bad at this.";
У вас должны быть лучшие результаты.
В то время как тип someString
в исходном коде (char*
) позволяет модифицировать char
s, на которые он указывает, потому что он фактически указывает на строковый литерал (который не разрешается изменять) попытка выполнить любую модификацию с помощью указателя привела к тому, что технически известно как неопределенное поведение , что в вашем случае было нарушением доступа к памяти.