g++ 下 new[] 之后用delete释放 会提示 munmap_chunk()

这篇博客详细记录了在C++中使用new[]分配内存后,通过delete释放时遇到的munmap_chunk()错误。错误发生于程序尝试释放一块无效的内存指针,导致glibc检测到问题并触发回溯。内容包括错误的堆内存映射和库函数调用栈,有助于理解内存管理问题。
摘要由CSDN通过智能技术生成
#include<iostream>
using namespace std;

class Test
{
	public:
		Test()
		{
			cout << "construct" << endl;
		}
		~Test()
		{
			cout << "destruct" << endl;
		}
};

int main(void)
{
	Test *p1 = new Test[3];
	cout << hex << p1 << endl;
	delete p1;

	Test *p2 = new Test[3];
	cout << hex << p2 << endl;
	delete []p2;


	return 0;
}


error:

construct
construct
construct
0x8e2b00c
destruct
*** glibc detected *** ./delete[]: munmap_chunk(): invalid pointer: 0x08e2b00c ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x73e42)[0xb758ee42]
/lib/i386-linux-gnu/libc.so.6(+0x74525)[0xb758f525]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb778851f]
./delete[][0x8048893

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值