如何找到像这样的数组的字节大小?
double dArray[2][5][3][4];
我尝试过这种方法,但它会返回" 2"。也许是因为数组只是声明而没有填充任何东西?
#include <iostream>
#define ARRAY_SIZE(array) (sizeof((array))/sizeof((array[0])))
using namespace std;
int main() {
double dArray[2][5][3][4];
cout << ARRAY_SIZE(dArray) << endl;
}
答案 0 :(得分:4)
我如何找到以字节为单位的大小
这可以告诉您阵列中有多少元素。它为2
提供了dArray
的预期答案。
#define ARRAY_SIZE(array) (sizeof((array))/sizeof((array[0])))
如果你想要的是字节数,那就可以了。
#define ARRAY_SIZE(array) (sizeof(array))
也许是因为数组只是声明而没有填充任何东西?
这不会影响sizeof
的行为。数组没有已填充或未填充的概念。
答案 1 :(得分:2)
array[0]
包含5 * 3 * 4
个元素,因此当数组的第一个维度为2时,sizeof(array) / sizeof(array[0])
将为您提供2
将您的宏重写为:
#define ARRAY_SIZE(array, type) (sizeof((array))/sizeof((type)))
获取元素数量
或只是sizeof(array)
来获取字节数。