Рубрики

C | Динамическое Распределение Памяти | Вопрос 8

Рассмотрим следующую программу, где i, j и k хранятся в памяти?

int i;

int main()

{

    int j;

    int *k = (int *) malloc (sizeof(int));

}

(A) i, j и * k хранятся в сегменте стека
(B) i и j хранятся в сегменте стека. * К хранится в куче.
(C) i хранится в части BSS сегмента данных, j хранится в сегменте стека. * К хранится в куче.
(D) j хранится в части BSS сегмента данных, i хранится в сегменте стека. * К хранится в куче.

Ответ: (с)
Объяснение: я — глобальная переменная, и она неинициализирована, поэтому она хранится в части BSS сегмента данных (http://en.wikipedia.org/wiki/.bss).

j является локальным в main (), поэтому он хранится в фрейме стека (http://en.wikipedia.org/wiki/Call_stack)

Рекомендуемые посты:

C | Динамическое Распределение Памяти | Вопрос 8

0.00 (0%) 0 votes