注意!!一定要谨慎使用c/c++原生指针
来源:互联网 发布:linux下usb通讯编程 编辑:程序博客网 时间:2024/06/05 15:18
使用指针,要非常小心,今天在做一个小游戏时,就碰到一个使用原生指针的问题,找了好几个小时,才定位到问题的所在,晕。
主要是顶层逻辑中引用了一个指针,而在业务逻辑中将此指针删除了。这种在代码量很少的情况下,很容易被发现,但是代码量多了,逻辑多了的时候,想一下子定位到问题所在,就没那么容易了。
结论:能用智能指针,就避免直接使用原生指针;删除指针时,要极其的小心,多想想是否有其它地方在引用着。随意的delete,会在你稍不注意的时候,就引入bug,而且极其难定位问题所在。
以下是顶层逻辑,在业务逻辑中,会删除m_World.GetEntityArray中的对象,导致内存访问违规!!!
//逻辑函数 BattleWorld::EntityArray mEntitys = m_World.GetEntityArray(); for ( auto it = mEntitys.begin(); it != mEntitys.end(); ++it ) { if ( *it ) { AiObject* pAi= (*it)->GetAi(); if ( pAi ) { pAi->Run(); } } }
0 0
- 注意!!一定要谨慎使用c/c++原生指针
- 【C/C++】Linux下使用system()函数一定要谨慎
- C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 【C/C++】Linux下使用system()函数一定要谨慎
- 使用cygwin注意事项二
- vim 使用、设置笔记
- (转)vim 访问系统剪贴板
- 003云数据中心基础原理笔记
- c/c++生成预编译文件
- 注意!!一定要谨慎使用c/c++原生指针
- 安卓解决listview的item嵌套多个edittext的问题
- ctags使用
- Windows下使用vim编写代码,使用nmake编译代码,使用vs来调试代码
- react native测量组件的宽高
- 递归递推练习―F―计算组合数
- 继承的设计技巧
- 海思芯片分辨率和码率、流量之间的关系
- java实现面向对象 第2章继承