#c #память
объясните пожалуйста, как решать такие задачи с моделями памяти:
Установлена модель памяти COMPACT. Какой объем памяти будет занимать переменная
pd согласно описанию float *pd[5];?
Установлена модель памяти MEDIUM. Какой объем памяти будет занимать переменная
a согласно описанию char *a[5][2];?
Установлена модель памяти SMALL Имеется описание int a[10] = {1, 2, 3, 4, 5}, *p
= a+2; Какие из следующих выражений имеют значение 2?
(int)p - (int)a;
p - a
*p - *a;
(a[1] + *p) / 2
Ответы
Ответ 1
Вот тут приводят вот такую таблицу: И дано такое пояснение: в колонке Code - указатели на функции; в колонке Data - указатели на переменные; Указатели near занимают 2 байта, указатели far - 4 байта. Теперь, возвращаясь к вашим вопросам. Поскольку у вас нету указателей на функции, то всегда смотрим в колонку Data: Массив из 5-ти far указателей на float, т.е. 5 * 4 = 20 байт; Двумерный массив из 10-ти near указателей на char, т.е. 10 * 2 = 20 байт; Массив из 10 интов и один near указатель, но размерность указателя на ответ никак не влияет. Правильные ответы: 2, 3, 4.
Комментариев нет:
Отправить комментарий