我正在使用C++,我在我的书中看到了这个问题。 这个声明将占用多少字节?该阵列在内存中占用多少字节?
float** p[5][10][2];
并且没有关于该机器的内存的额外信息? 是否可以告诉明确的答案?
我正在使用C++,我在我的书中看到了这个问题。 这个声明将占用多少字节?该阵列在内存中占用多少字节?
float** p[5][10][2];
并且没有关于该机器的内存的额外信息? 是否可以告诉明确的答案?
这取决于平台。
在x86平台上,它占用5 * 10 * 2 * 4个字节,因为任何指针在平台中占用4个字节。
因此,它在x64平台中占用5 * 10 * 2 * 8个字节。
只是为了澄清。在这里,你正在声明一个3D矩阵,其中的元素是指向某些东西/浮点的指针。既然你有5x10x2 = 100个指针,指针占据4b或8b,答案可以是400b或800b。
不要把它与100 * sizeof(float)混淆,因为矩阵的元素不是浮动的。
当然:'sizeof(p)'。 –
@DietmarKühl是依赖于特定的机器?例如200可能回答与否? – Delsa
它取决于机器,'200'不太可能成为任何实际使用的机器的答案(它可能是过去一些机器和一些定制CPU的答案)。它更可能是400或800,具体取决于你是32位还是64位版本。 –