Я пытаюсь выяснить, как пропустить 2-мерный массив в виде одномерного массива. Поскольку 2-мерный массив будет занимать непрерывную память, существует ли способ адресовать двумерный массив как одномерный массив, изменяя индекс на 4 байта. Я принимаю целочисленный массив. Может ли кто-нибудь привести пример? Я попытался следующие, но это не работает:C как перемещаться по 2-мерному массиву на основе адреса
for (int i = 0; i < 2; i++){
for (int j = 0;j < 2; j++){
z[i][j] = count;
count++;
}
}
for (int i = 0; i < 4; i++)
printf("%d\n", z[i]);
Возможный дубликат [Объяснить 2D массив итерации с 1 цикла] (http://stackoverflow.com/questions/16976328/explain-2d-array-iteration-with-1-loop) – DeiDei
Just используйте первый подмассив ... например. для 'int arr [3] [3]' index 'arr [0]' из 'arr [0] [0]' to 'arr [0] [8]' ... или использовать 'int *', например : 'int * p = arr [0];' и использовать 'p [0]' ... 'p [8]' – Dmitri
[пример] (http://ideone.com/qDXQhT) – BLUEPIXY