社区
C++ 语言
帖子详情
看到一段代码返回的是不是野指针。
csdn网速很慢
2011-09-25 08:57:11
if ( 0 == name.size() || !image)
return 0;
ITexture* t = createDeviceDependentTexture(image, name, mipmapData);//里边NEW 一个对象
if (t)
{
addTexture(t);
t->drop();//这个是delete this 释放了这个对象。
}
return t;
那么返回t有什么意义呢。我看t已经成了野指针了;。
...全文
93
7
打赏
收藏
看到一段代码返回的是不是野指针。
if ( 0 == name.size() || !image) return 0; ITexture* t = createDeviceDependentTexture(image, name, mipmapData);//里边NEW 一个对象 if (t) { addTexture(t); t->drop();//这个是delete this 释放了这个对象。 } return t; 那么返回t有什么意义呢。我看t已经成了野指针了;。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
高性能架构探索
2011-09-25
打赏
举报
回复
_IRR_DEBUG_BREAK_IF(ReferenceCounter <= 0)
在你的对象里面,每次拷贝或者其他操作的时候,都会给其引用计数加一,当作用域结束的时候,技术减一,如果为0,则析构该函数
楼上说的很对,去看看引用计数
阿尼小码
2011-09-25
打赏
举报
回复
[Quote=引用 5 楼 soliddream66 的回复:]
厄~看到引用计数了
要引用清零才会释放吧。
正常来说delete以后需要设置指针为NULL吧。
返回指针,我想可能需要判断这个设备有没有释放掉吧,如果没有释放掉可能需要进一步的工作。
[/Quote]++
soliddream66
2011-09-25
打赏
举报
回复
厄~看到引用计数了
要引用清零才会释放吧。
正常来说delete以后需要设置指针为NULL吧。
返回指针,我想可能需要判断这个设备有没有释放掉吧,如果没有释放掉可能需要进一步的工作。
ljhhh0123
2011-09-25
打赏
举报
回复
t->drop();不足以释放对象,
代码片段太少,不足以证明,到底是哪个对象。
zhanglingkangk
2011-09-25
打赏
举报
回复
确实成了野指针了啊。。看不出来有何妙用
csdn网速很慢
2011-09-25
打赏
举报
回复
ITexture* CNullDriver::addTexture(const io::path& name, IImage* image, void* mipmapData)
{
if ( 0 == name.size() || !image)
return 0;
ITexture* t = createDeviceDependentTexture(image, name, mipmapData);
if (t)
{
addTexture(t);
t->drop();
}
return t;
}
ITexture* CNullDriver::createDeviceDependentTexture(IImage* surface, const io::path& name, void* mipmapData)
{
return new SDummyTexture(name);
}
bool drop() const
{
// someone is doing bad reference counting.
_IRR_DEBUG_BREAK_IF(ReferenceCounter <= 0)
--ReferenceCounter;
if (!ReferenceCounter)
{
delete this;
return true;
}
return false;
}
这个是全部函数。是鬼火引擎的。我觉得这么有名的东西应该不会错的吧.
这个返回值是不是还有什么意义?、
mengmingtao
2011-09-25
打赏
举报
回复
你是对的~
理解C++ lvalue与rvalue
空泛的讨论先到这里,先看
一段
会报错的
代码
: #include using std::cout; using std::endl; int foo(int &a) { return a; } int main() { int a = 1; cout << &a << endl; int *p = &foo...
【C语言】
野指针
前言:在学习C语言或者开放工程时,我们常会听到“
野指针
”这个概念,那么什么是
野指针
?
野指针
产生的原因是什么?
野指针
的危害是什么?我们又要如何去规避
野指针
呢?这章内容我们就将学习以上内容。 文章目录一,...
c++
野指针
小结
1.什么是
野指针
所谓
野指针
(wild pointer),...造成
野指针
最常见的情况之一就是指针未被正确初始化。任何指针在被创建的时候,不会自动变成NULL指针,他的default值是随机的。所以一个比较好的习惯是,指针刚创建的时候
【C++】
野指针
及其危害
引言:小白在初期敲
代码
时最可能碰到的问题之一估计就是
野指针
了,因为它在写程序的时候一不注意就写出来了,且不容易被发现,调试半天可能也不会出结果。去找大佬一看,其实就是一个很简单的
野指针
问题,那么我们...
初识C语言---
野指针
什么是
野指针
什么情况下会有
野指针
如何避免
C++ 语言
64,648
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章