我有一个链表结构
struct node {
int data;
node next;
}
和一个函数
struct node *insert_sorted (struct node *nodes,
int d) {
// todo
}
我需要实现这个,以便给定一个新数据,它构造一个新节点并按排序顺序插入到链表中。
我要检查
insert_sorted
函数内部的第一件事是 nodes
是否指向任何内容或其他内容。 我的意思并不是检查指针是否是我所熟悉的NULL
。 我的意思是我想检查地址 nodes
是否包含节点结构。 我想如果这是 Java 我也许可以写
if (nodes == null) {
...
}
但我不认为在 C 中可以做类似的事情。
我知道我可以尝试管理
nodes
指针,这样,如果它非空,那么它总是指向某个结构。 我可能最终会这样做。
但我只是想知道是否存在更直接的方法来解决问题。 有没有办法获取给定的非空指针并检查它是否指向任何内容?
A
struct node *
始终是 NULL
或指向某个 struct node
,除非您在代码中做了非法的事情。如果你做对了,问题的答案总是“是”。如果你做错了事情,你就调用了未定义的行为,所以问这个问题是没有用的。