c语言笔记: 对 void *lpObj 进行类型转换时,一不留神,后果很严重

时间:2022-09-27 14:29:45

问题描述:

一个项目之前测试的时候一点问题没有,今天早上软件在一个特定的条件下出现崩溃情况,但并不是每次都会崩溃情,崩溃概率达到80%。

经过上午3个小时的排查,终于找到原因。

在项目中,我使用了一个 void *lpFocusedLayer,用来指向不同的结构体(struct),但是在一次转换过程中,使用了错误的结构类型对 lpFocusedLayer 进行类型转换 (有的时候代码 copy -> paste 真的会出大问题)。

下面是错误代码:

c语言笔记: 对 void *lpObj 进行类型转换时,一不留神,后果很严重

修改后的代码:

c语言笔记: 对 void *lpObj 进行类型转换时,一不留神,后果很严重