Предмет: Информатика,
автор: fin115
Задан следующий массив arr некоторого типа type (type занимает N байт в памяти) type arr[14][5][2][7]; Требуется определить разницу в байтах между следующими адресами (если это возможно сделать однозначно):
&arr[9][4][0][1] - &arr[5][1] Hint: если ответ зависит от размера типа type, можно в качестве ответа указать формулу с неизвестной вида: N*<число> (язык Си)
Аноним:
&arr[9][4][0][1] - &arr[5][1] - Язык С: сто способов выстрелить себе в ногу
Ответы
Автор ответа:
3
N*323.
Адрес &arr[i][j][k][l] получается из адреса &arr[0][0][0][0] = &arr[0][0][0] = &arr[0][0] = &arr[0] = &arr[0] путем прибавления (5 * 2 * 7 * i + 2 * 7 * j + 7 * k + l) * N = (70i + 14j + 7k + l) * N байт
Тогда &arr[9][4][0][1] = &arr + 687N байт, &arr[5][1] = &arr + 364N байт, разность (687 - 364) N = 323N
Похожие вопросы
Предмет: Алгебра,
автор: gorepushkin
Предмет: Русский язык,
автор: Аноним
Предмет: Русский язык,
автор: mexwee
Предмет: Литература,
автор: Сончик188
Предмет: Математика,
автор: Аноним