如何访问循环外的三维数组

Flo*_*wer 0 c arrays

我正在使用C作为我的程序.我正在使用Ubuntu 14.04.以下是我使用的循环之一.

for (x=0; x<1024; x++)
{
    for (i=0; i<8; i++)
    {
        for (j=0; j<8; j++)
        {
            arr[x][i][j]=vi[8*i+j+gi];
        }
    }
    gi = gi+(8*8);
}
Run Code Online (Sandbox Code Playgroud)

这里'vi'是一个单维数组.现在数组'arr'有1024块大小为8x8的块.是否有规定在循环外部访问块(大小为8x8)以进行进一步处理?

flu*_*ter 5

如果x数组被定义为类似的东西int x[1024][8][8],这意味着x每个元素都是1024个元素int[8][8]的数组,即int数组的数组.因此,如果您想获得某些元素,只需使用subscription来访问它,就像访问普通数组一样.例如,您x[0]用来访问x的第一个8x8块,x[1023]以访问最后一个块.