объясните пожалуйста, как решать такие задачи с моделями памяти:
Установлена модель памяти 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
Ответ
Вот тут приводят вот такую таблицу:
И дано такое пояснение:
в колонке Code - указатели на функции;
в колонке Data - указатели на переменные;
Указатели near занимают 2 байта, указатели far - 4 байта.
Теперь, возвращаясь к вашим вопросам. Поскольку у вас нету указателей на функции, то всегда смотрим в колонку Data:
Массив из 5-ти far указателей на float, т.е. 5 * 4 = 20 байт;
Двумерный массив из 10-ти near указателей на char, т.е. 10 * 2 = 20 байт;
Массив из 10 интов и один near указатель, но размерность указателя на ответ никак не влияет. Правильные ответы: 2, 3, 4.
Комментариев нет:
Отправить комментарий