智能指针,然并卵

cpp 复制代码
// test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
#include <memory>

#ifndef _SAFE_DELETE
#define _SAFE_DELETE(x) \
	{ \
	if( (x) ) { \
	delete (x); \
	(x) = NULL; \
	} \
	}
#endif

class mysql_result
{
public:
	mysql_result(){
		m_nRows = 0;
	}
	~mysql_result(){
		std::cout << "~mysql_result()\n";
	}
	int m_nRows;		// 结果集行数
};

mysql_result *ptest;

void test()
{
	mysql_result *result = new mysql_result();
	std::shared_ptr<mysql_result> p(result);
	_SAFE_DELETE(result);
}

int main()
{
	
	//mysql_result *result = new mysql_result();
	//mysql_result *test = result;
	//_SAFE_DELETE(result);
	test();
	system("pause");
    std::cout << "Hello World!\n";
}

两个指针指向同一个对象,释放其中一个指针,另外一个就会野指针。当你想引入智能指针解决问题,然并卵,智能指针也是野指针。

相关推荐
用户69371750013846 分钟前
2026 Android 开发,现在还能入行吗?
android·前端·ai编程
YBZha19 分钟前
Android Camera2 + OpenGL 竖屏或横屏预览会有“轻微拉伸”
android
seabirdssss1 小时前
Appium 在小米平板上的安装受限与闪退排查
android·appium·电脑
喂_balabala1 小时前
Kotlin-属性委托
android·开发语言·kotlin
空中海1 小时前
第一章:Android 系统架构与核心原理
android·系统架构
lI-_-Il2 小时前
适配工具箱:手机里的全能数字瑞士军刀
android·音视频
彳亍走的猪2 小时前
Android 全局防抖/防重复点击
android·java·开发语言
程序员陆业聪2 小时前
Android图片加载框架深度对比:Coil 3.4.0 vs Glide 5.0,该选哪个?
android
seabirdssss2 小时前
Android 模拟器搭建
android·经验分享
CYRUS STUDIO2 小时前
Frida 源码编译全流程:自己动手编译 frida-server
android·安全·逆向