如何解决使用new运算符在堆中分配了多少内存?
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
,指针类型本身具有自动存储持续时间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。