Посмотрим на следующую программу и не уверены, как распределена память и почему:
void function() {
char text1[] = "SomeText";
char* text2 = "Some Text";
char *text = (char*) malloc(strlen("Some Text") + 1 );
}
В приведенном выше коде последний, очевидно, находится в куче. Однако, поскольку я понимаю, что text2 находится в сегменте данных программы, а text1 может находиться в стеке. Или мое предположение неверно? Какое здесь право? Является ли этот компилятор зависимым?
Спасибо