我们做C++的,内存问题是很关键的。空指针和野指针往往是一些致命伤害的根源。昨天晚上,鄙人就犯了这样一个错误。当时的情景是这样的:程序接收到一条命令A以后,并不能立即执行,必须要等到服务器端发回另一条指令B后一并执行。天真的我就把A的地址直接给了回调函数,这下爽了,回调函数在B命令触发后管他三七二十几的就直接访问——结果可想而知了。
这是我近期最严重的一次bug,造成玩家成批的当机,对此应该引起高度的重视。所有的与回调有关的最好不要使用指针,若要使用则必须非常非常的注意。回调时采用ID然后在容器中搜索,或者静态变量、全局变量,或者自己动态的去申请释放,但对于指针的访问应该注意一下子。
这样的问题不仅仅出现在回调中,对栈空间的不合理利用也会同样bug的。小伙以后得多注意注意,别让C#弄出不好的习惯来。
评论