我刚问了一个关于free()的问题,请查看下面的链接。如果我不能使用if(指针!= NULL),那么我可以使用什么,以防因为我犯了一个愚蠢的错误而无法正常工作。
答案 0 :(得分:3)
每当你释放指针时,你应该将它设置为null - 然后你可以安全地使用你的测试
free(pointer);
pointer=NULL;
if(!pointer)
{
pointer=malloc(42);
}
你甚至可以创建自己的免费功能,所以你不要忘记设置为null。
void myfree(void **ptr)
{
free(*ptr);
*ptr=NULL;
}
答案 1 :(得分:0)
不要使用裸指针。
使用std::shared_ptr<OBJ>
和std::unique_ptr<OBJ>