[英]Will it cause a memory leakage on using free() to deallocate a heap allocated variable by new operator?
[英]How much memory is allocated in heap using new operator?
int main()
{
int ptr* = new int[10];
}
我想知道是否在堆中分配了 10 * 4 个字节(40 个),并且为指针也分配了 8 个字节,或者整行仅分配了 40 个字节。 如果为指针分配了内存,那么在堆栈中分配了 8 个字节?
我不确定,但我认为为 ptr 分配了 8 个字节(IDK 在哪里),以及为 10 个整数块 - 40 个字节(在堆中)。我只是想具体化。 谢谢。
你的意思是int* ptr = new int[10];
至少分配了 10 个int
的空间(C++ 运行时库和操作系统实际上可能分配比这更多的内存,但当然您没有可移植的观察方式)。
那是10 * sizeof(int)
个字节。 在当前常见的桌面系统上,确实是 40 字节。
该内存具有动态存储持续时间。 它被分配给一个int*
指针类型ptr
,它本身具有自动存储持续时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.