Информатика, вопрос задал fin115 , 7 лет назад

Задан следующий массив arr некоторого типа type (type занимает N байт в памяти) type arr[14][5][2][7]; Требуется определить разницу в байтах между следующими адресами (если это возможно сделать однозначно):
&arr[9][4][0][1] - &arr[5][1] Hint: если ответ зависит от размера типа type, можно в качестве ответа указать формулу с неизвестной вида: N*<число> (язык Си)

Ответы на вопрос

Ответил nelle987
0

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

Новые вопросы