【发布时间】:2016-06-08 14:32:46
【问题描述】:
如果有人知道,我只需要一个明确的答案。
我已经检查过类似的问题,但没有一个能阐明多维数组中发生的情况。所以,
typedef u_char block[16];
block *array = (block*) somePointer;
我正在尝试将 字节 流作为块数组读取。
同样,每个元素的大小正好是 1 个字节,所以不要试图用大小和元素让我更加困惑。
我假设(希望)变量array 已成为一个块数组。
array[n][16];
如何确定n 的值??是有限的吗?
一些测试表明:
sizeof(array) == 4; // n != sizeof (array)
sizeof(*array) == 16; // n != sizeof (*array)
【问题讨论】:
-
sizeof(pointer) == 4(32bit, you're on), andsizeof (char[16]) == 16...我为什么不惊讶? -
“我假设(希望)变量数组已经变成了块数组。” - 如果指针是一个数组,它就不会被称为“指针”,而是“数组”!它甚至不指向二维数组。请学习这些基础知识。这里有很多关于如何声明二维数组的问题(注意:它不是类似于
int **array;- 这是初学者的另一个误解! -
如果 1) 没有必要或 2) 您不了解 所有 含义或 3) 不接受,则 永远不会他们都!
-
"如何确定
n的值?" -n! -
I assume (hope) that the variable array has became an array of blocks.... 数组是 NOT 指针,反之亦然。
标签: c arrays pointers multidimensional-array