(零)C / C ++中的指针
我正在处理一个项目,我不断遇到这个错误,不允许我完成项目。当我初始化我的一个指针指向将在程序执行期间生成的对象时,我将其初始化为
NULL
。然后,当我检查它的设置时,返回值nil
。这样的事情怎么可能?我不相信C中存在零指针。有什么方法可以解决这个问题吗?
struct order_line *front = NULL;
...
printf("Head: %pn", front); // prints -> Head: (nil)
没有找到相关结果
已邀请:
7 个回复
很缴
in
格式化指针类型。这将区分空指针和打印
,因为它是指针上下文中的特殊值。如果要为空指针输出0,请将指针强制转换为整数并使用
代替:
原始答案,因为它可能仍然有用:
是定义为
或
的宏,因此如果将指针设置为
,则与将其设置为
完全相同。这适用于声明空指针的目的,因为地址0处的内存永远不会分配给您的程序。
浮凰量
打印指针时,它将以实现定义的方式打印,根据POSIX printf规范中的引用(C99规范中也存在类似的措辞)。 参数必须是指向void的指针。指针的值以依赖于实现的方式转换为可打印字符序列。 我猜,这意味着如果指针是
,它可能会打印它想要的,包括将它打印为
或
或
。
董碘奴星
打印
谢谢 Packia
碧肮械淌设
被分配给指针。
拟蓬
号拳藐孔妇
岭取
输出: - 变量的地址是--- ps-> p ---删除后 - 无 变量的地址是--- ps-> p ---删除后 - 0 如果条件,它将评估为false。