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