Это нормально с точки зрения распределения: строковый литерал неявно static
. Не нормально возвращать не-const
указатель на литерал.
Если вы хотите вернуть изменяемую (не const
) строку, объявите ее static char[]
. Или лучше верните копию:
return strdup("something else");
Не забудьте потом free
. strdup
не является ISO, но доступен почти везде (я полагаю, кроме MSVC).