История изменений
Исправление firkax, (текущая версия) :
Любой строковый литерал - это указатель на место в статической области памяти, предынициализированной компилятором, в которое компилятор этот самый литерал положил. Так что живёт он в течение всего времени работы программы. Нубов, которые втирают что-то про стек и области видимости, не слушай.
И замени char* на char const* т.к. литерал нельзя модифицировать. По-хорошему с char* вообще должно ошибку компиляции, но компиляторы эту конструкцию поддерживают для совместимости с древним кодом из 70-х-80-х, где const не было.
И ещё важная оговорка на всякий случай. Если ты напишешь так:
char st[] = "qwe";
Исходная версия firkax, :
Любой строковый литерал - это указатель на место в статической области памяти, предынициализированной компилятором, в которое компилятор этот самый литерал положил. Так что живёт он в течение всего времени работы программы. Нубов, которые втирают что-то про стек и области видимости, не слушай.
И замени char* на char const* т.к. литерал нельзя модифицировать. По-хорошему с char* вообще должно ошибку компиляции, но компиляторы эту конструкцию поддерживают для совместимости с древним кодом из 70-х-80-х, где const не было.