关于c++出现的易错问题
比如我一个对象,经常操作用的指针ptr,原生指针比如ClassA* ca =;
但是我要保存ca,在另一个地方操作,比如: cb =ca; 这样子是不行的,因为我要操作的是ca,而不是ca的值,为什么呢,因为ca代表这个对象,而&ca,代表的是ca的地址;我用cb可以动态的更换值,来改变不同ClassA对象;
所以这里用了二级指针,Class** cb; cb = &ca; 比如:
{
ClassA* ca = CallFunction(); //
this->cb = &ca; //这个是错误的用法。因为ca超出这个域就会被析构,cb指向了非法的地址,或者已经被释放的内存,造成后续无法访问。正确的写法如后面
}
把CallFunction的返回值改成Class**, 简而言之:避免试用临时变量和指针的地址,这是不对的。
当然如果比较好的办法,是设计解决,多用typedef 或者多封装,避免使用多级指针。不过代码量可能会很多,推荐大工程使用,小工程的话就牢记不要使用临时变量和指针的地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律