利用c++信号析构死循环中的资源

a.h:

复制代码
#include <iostream>
 int *a1 = new int[5];
using namespace std;
class AA
{
public:
	AA();
	~AA();
	void work();
   static void signalHandler(int signum);
private:
	
};

AA::AA()
{
}

AA::~AA()
{
}

a.cpp:

复制代码
#include "a.h"
#include <cstdlib>
#include <signal.h>
#include <unistd.h>
void AA::work() {
    // 注册信号处理程序
	signal(SIGINT, signalHandler);
	signal(SIGSEGV, signalHandler);
	signal(SIGTERM, signalHandler);
	int c = 0;
	while (true)
	{
		a1[c] = c + 1;
	}
    //后面的代码不会执行
	cout << 111 << endl;
}
void AA::signalHandler(int signum)
{
    delete[] a1;cout<<"delete a1"<<endl;
	// 退出程序
	std::exit(signum);
}
int main() {
	
	AA a;
	a.work();
}

运行截图:

相关推荐
硅农深芯11 小时前
如何使用ptqt5实现进度条的动态显示
开发语言·python·qt
kyle~11 小时前
计算机系统---USB的四种传输方式
运维·c++·计算机系统
小白程序员成长日记11 小时前
2025.11.06 力扣每日一题
算法·leetcode
Lhan.zzZ11 小时前
Qt数据可视化实战:饼图、线图与表格的完整指南
开发语言·qt·信息可视化
Acrelhuang11 小时前
筑牢用电防线:Acrel-1000 自动化系统赋能 35kV 园区高效供电-安科瑞黄安南
java·大数据·开发语言·人工智能·物联网
暴风鱼划水11 小时前
算法题(Python)数组篇 | 4.长度最小的子数组
python·算法·力扣
gugugu.11 小时前
算法:二分算法类型题目总结---(含二分模版)
算法
大G的笔记本11 小时前
算法篇常见面试题清单
java·算法·排序算法
小龙报11 小时前
《算法通关指南数据结构和算法篇(4)--- 队列和queue》
c语言·开发语言·数据结构·c++·创业创新·学习方法·visual studio
打不了嗝 ᥬ᭄12 小时前
【Linux】网络层协议
linux·网络·c++·网络协议·http