Переменное место хранения

Когда мы объявляем переменную как

char arr[] = "Hello";

тогда строка "Hello" выше находится в стеке.

Но когда мы объявляем переменную как

char* arr = "Hello";

тогда строка "Hello" объявляется в стеке или сегменте кода? Если сегмент кода, то почему сегмент кода, а не в стеке?

1 ответ

Нет. Строковый литерал не объявлен ни в одном сегменте.

Он имеет статическую продолжительность хранения и доступен только для чтения.

Поскольку это только для чтения, присваивая его адрес char* это неверно. Измените это на char const* arr = "...";

Другие вопросы по тегам