此函数的目的是用于C库中的qsort函数。仅当两组具有相同数量的元素时,以下功能才有效。但是,如果其中一个集合的元素少于另一个集合(并且值连续匹配),我的函数似乎会进入分段错误。我相信原因是我可能会在下一个节点可能为空时递归调用下一个节点。
int cmp(const void *a, const void *b){
Node *pa = (Node*)a;
Node *pb = (Node*)b;
if (pa->val == pb->val)
cmp( pa->next, pb->next );
else if (pa->val < pb->val)
return -1;
else
return 1;
return 0; // placeholder
}
但我错了,上述功能是否正确?