问题描述
int main()
{
int ptr* = new int[10];
}
我想知道是否在堆中分配了10 * 4个字节(40个),并且为指针分配了8个字节,还是整行仅分配了40个字节。 如果为指针分配了内存,那么堆栈中会分配8个字节?
我不确定,但我认为为ptr分配了8个字节(IDK在哪里),为10个整数的块分配了40个字节(在堆中)。我只想具体化。谢谢。
解决方法
您的意思是int* ptr = new int[10];
int
s的空间(C ++运行时库和操作系统实际上可能分配了比这更多的内存,但是当然,您没有可移植的观察方式)。
即10 * sizeof(int)
个字节。在当前常见的台式机系统上,确实是40个字节。
该内存具有动态存储持续时间。它被分配给int*
指针类型ptr
,指针类型本身具有自动存储持续时间。