欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

注意!!一定要谨慎使用c/c++原生指针

发布时间:2025/3/20 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 注意!!一定要谨慎使用c/c++原生指针 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用指针,要非常小心,今天在做一个小游戏时,就碰到一个使用原生指针的问题,找了好几个小时,才定位到问题的所在,晕。

主要是顶层逻辑中引用了一个指针,而在业务逻辑中将此指针删除了。这种在代码量很少的情况下,很容易被发现,但是代码量多了,逻辑多了的时候,想一下子定位到问题所在,就没那么容易了。

结论:避免直接使用原生指针,尽量都用智能指针,随意的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();}}}

 

转载于:https://www.cnblogs.com/shanql/p/6619264.html

总结

以上是生活随笔为你收集整理的注意!!一定要谨慎使用c/c++原生指针的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。