小编Max*_*ino的帖子

为什么以下 C 代码在链表从内存中释放后不返回 0?

该函数仅在 C 中的链表为空时才删除它。ll_length() 函数已确认有效。如果链表删除成功,则返回0。如果没有删除,则返回负1。该程序返回-1。它输入第一个 if 语句,但不输入第二个。怎么了

ll_destroy(struct linked_list *ll)
{
  if (ll_length(ll) == 0){
    free(ll);
    if (ll == NULL){
      return 0; //remove 0 if removed   
     }
  }
  return -1; // if not deleted
}
Run Code Online (Sandbox Code Playgroud)

c free if-statement pass-by-reference pass-by-value

0
推荐指数
1
解决办法
69
查看次数

标签 统计

c ×1

free ×1

if-statement ×1

pass-by-reference ×1

pass-by-value ×1