利用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();
}

运行截图:

相关推荐
BothSavage9 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn9 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽11 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
郝学胜_神的一滴11 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
先吃饱再说1 天前
判断回文字符串,从一行代码到双指针优化
算法
见过夏天1 天前
C++ 基础入门完全指南
c++
黄敬峰1 天前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术1 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构