这个数组在内存中占用多少字节?

时间:2016-12-30 13:16:26

标签: c++ pointers

我正在使用c ++,我在书中看到了这个问题。 这个声明将占用多少字节?

 var objectives= selectedOb.
       .Select(obj=> new Objective 
        {
             //map properties here like Id = obj.Id
        });
  exam.Objectives.AddRange(objectives);

并没有关于该机器内存的额外信息? 是否有可能为此明确回答?

3 个答案:

答案 0 :(得分:3)

它依赖于实现。所以你要发现:

float** p[5][10][2];
std::cout << "sizeof(p) == " << sizeof(p) << '\n';

答案 1 :(得分:2)

只是澄清一下。在这里,您将声明一个3D矩阵,其中的元素是指向/浮动的指针。由于你有5x10x2 = 100指针,而指针占用4b或8b,答案可能是400b或800b。

不要用100 * sizeof(float)弄乱这个,因为矩阵元素不是浮点数。

答案 2 :(得分:1)

这取决于平台。

在x86平台上,它占用5 * 10 * 2 * 4个字节,因为任何指针占用平台中的4个字节。

因此,它在x64平台中占用5 * 10 * 2 * 8个字节。