C - Вернуть указатель char без malloc

Рассмотрим следующий код:

char* pointerTesting(void) {

    char* test = "hello";
    return test;
}

int main() {

   char* string = pointerTesting();
   printf("string: %s\n", string);
}

У него нет проблем с компиляцией и запуском. Однако, как я понимаю, это не должно работать, поскольку память, выделенная для указателя test , находится в стеке и уничтожается при возврате в main.

Итак, вопрос в том, как это может работать без malloc в функции pointerTesting ()?

7
задан Keith Thompson 15 December 2011 в 01:09
поделиться