在进行编程时,我使用断言以及 NULL 指针验证。
但据我所知,断言仅在调试模式下有用。
我的问题是假设我有一个内部指针,我确信它不能是返回指针的 NULL 示例函数(但指针不是类的成员),在这种情况下我可以使用断言
test* ptr = fun(); // return a pointer of type test
assert(ptr);
//do some operation
或NULL指针验证
test* ptr = fun(); // return a pointer of type test
assert(ptr);
if (NULL != ptr)
{
//do some operation
}
这里哪个代码实践是好的。根据我的理解,它将是第二个。因为我遇到过一些情况,由于一些我们甚至想不到的异常情况,ptr的值返回NULL 。
但是我们还有其他更好的选择吗?