C中二维数组的大小

时间:2013-06-24 20:21:26

标签: c arrays sizeof

我有以下二维数组:

#define ROW 100
#define LINE 50

int a[ROW][LINE];

但如何获取最后45行的sizeof数组,例如a[55][0]a[99][99]

我们可以做sizeof(&a[55])吗?

2 个答案:

答案 0 :(得分:7)

保证数组的

sizeof等于单个元素的sizeof乘以元素的数量。因此,如果您想知道特定行数占用了多少内存,只需计算元素数量并乘以元素大小即可。需要45行

45 * LINE * sizeof a[0][0]

或者

45 * sizeof a[0]

这些最后 45行并不重要。所有行都相同。

答案 1 :(得分:1)

如果您只想要最后一行,从第55行开始,那么

(ROW - 55) * LINE * sizeof(int)

如果您只想要一般N行数,那么

N * LINE * sizeof(int)