348得票9回答
空指针是否安全可删除?

删除空指针是否安全? 这是一种好的编码风格吗?

205得票14回答
我可以使用 if (pointer) 替代 if (pointer != NULL) 吗?

检查指针是否为 NULL,可以简单地写成 if(pointer),还是必须使用 if(pointer != NULL)?

168得票10回答
无法在javax.annotation.*中找到@Nullable

我希望使用@Nullable注释来消除NullPointerExceptions。 我在网上找到了一些教程,我注意到这个注释来自javax.annotation.Nullable包; 但是当我导入它时会生成编译错误:找不到符号。

130得票2回答
当通过空指针调用成员函数时,会导致未定义行为的情况是什么时候发生?

考虑以下代码:#include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): ...

109得票1回答
Rust的Option类型的开销是什么?

在 Rust 中,引用永远不可能是 null。所以在实际需要 null 的情况下,例如链表,需要使用 Option 类型: 在 Rust 中,引用永远不可能是 null。所以在实际需要 null 的情况下,例如链表,需要使用 Option 类型:struct Element { v...

95得票3回答
执行memcpy(0,0,0)是否保证安全?

我对C标准不是很熟悉,请见谅。 我想知道是否有保证,按照标准,memcpy(0,0,0)是安全的。 我找到的唯一限制是如果内存区域重叠,则行为是未定义的... 但是我们可以认为这里的内存区域重叠吗?

74得票7回答
为什么不将nullptr称为NULL?

在C++11中,添加了nullptr关键字作为更安全的类型空指针常量,因为以前将NULL定义为0可能存在一些问题。 为什么标准委员会选择不将新的空指针常量命名为NULL,或者声明将NULL定义为#defined到nullptr?

69得票9回答
为什么在C语言中有两种表示NULL的方式?

根据C11标准的§6.3.2.3 ¶3,C语言中的空指针常量可以由实现定义为整数常量表达式0或将这样的表达式强制转换为void *。在C中,空指针常量由NULL宏定义。 我的实现(GCC 9.4.0)以以下方式在stddef.h中定义NULL: #define NULL ((void *)...

68得票9回答
我们如何检查指针是否为NULL指针?

我一直认为简单的if(p != NULL){..}就可以完成工作。但是在阅读这个Stack Overflow问题之后,似乎不行。 那么,在吸收了那个问题中所有讨论的情况下,检查NULL指针的规范方式是什么呢?该问题中说,NULL指针可能具有非零值。

52得票8回答
在空指针上访问类成员

我正在尝试使用C ++,发现下面的代码非常奇怪。class Foo{ public: virtual void say_virtual_hi(){ std::cout << "Virtual Hi"; } void say_hi() ...