指在malloc之后没有检查返回的指针是否为空
例如
void fun()
{
STL* newnode = (STL*)malloc(sizeof(STL));
/* ... */
free(newnode);
}
这样写是没有检查newnode是否为空而直接使用,当内存空间不够时,malloc失败会返回空指针
可以改为
void fun()
{
STL* newnode = (STL*)malloc(sizeof(STL));
if(newnode == NULL)
{
printf("malloc fail\n");
free(newnode);
}
else
{
/* ... */
free(newnode);
}
}