取消引用 NULL 指针 C++

Derefering NULL pointer c++

我收到警告:在第 2、4 行取消引用 NULL 指针 'ch'

我不明白为什么。有人可以帮我吗?

char *my_alloc(size_t size) {
   char *ch  = (char *)malloc(size);
   //FIXED: If malloc fails -> exit program
   if(*ch == NULL){
       exit(0);
   }
   return ch;
}

if(ch == NULL)就是你所需要的

您在 if

中的代码 *ch 取消引用 ch

ch == NULL 检查 ch 是否为 NULL

*ch == NULL检查ch点的物品是否为NULL

对于 c++(您在问题中报告使用的内容),答案是

char *ch  = new char[size];

随后在某个时候 delete[] ch

然后您不需要检查结果是否为 null,因为如果失败它会抛出。