前言
我就是简单地记录一下:
概况
昨天网上遇到一个差点叫我崩溃的问题:一句代码前前后后的代码和它完全一致,它也不是什么复杂的数据类型,但就是它在运行的时候发生了内存问题!!
我尝试过各种存储、释放变量,尝试过从结构体的赋值改成内存的拷贝...经过多次修改以后,毫无起色。
就在我失望地准备离开座位之前,我随便和同学发了个消息抱怨..然后再次点编译运行,居然正常运行了???之后我继续编译运行了好多次,都以成功告终。
启示
我认为这是和代码无关的机器层面的问题,白瞎了我几个小时。但我对下次遇到这种问题的处理有了更清晰的认识:
- 快速定位问题。将没把握的代码操作拆分化、简单化,直到定位到某几句。
- 查找资料补充漏洞。尤其是相关库函数,可以大大简化操作。
- 修改代码并调试,保证并相信自己编写的正确性。
- 如果没能解决,暂归为机器层面的问题。删除编译文件、开机关机、打打游戏、重新运行(玄学)。
最重要的是:不要因此影响到自己的心情~
附录
C语言中没有参数引用这种东西!!!
C语言可以用等号实现结构体浅拷贝,如果想要深层拷贝,用memcpy(&1,&2,size),但这个时候还是按机器问题处理吧...
后来我发现,我是给一个结构体变量malloc了它的指针的size...怪不得出问题呢!但这篇文章还是我的经验,就留在这里了~
740



被折叠的 条评论
为什么被折叠?



