当我在vs中使用单链表时,在使用结构体指针的时候,意外发现一个隐含的问题,就是C6011“取消指针null的引用”,此情况的根本原因就是未消除隐含空指针的危险。
问题描述
当我们使用结构体指针的时候,常常直接使用指针,而忽略判断这个指针是否是隐藏的空指针,从而产生的警告,本问题同样在malloc等动态内存管理中存在。
结构体指针(前):
malloc动态内存管理(前):
原因分析:
当我们尚未判断指针是否为空的时候就进行指针的应用,
就会存在隐含的空指针的危险,就会产生内存泄漏或异常。
解决方案:
在使用指针前进行判断不为空:
结构体指针:
malloc动态内存管理(后):