10得票1回答
CGO,如何向C函数传递空参数

有时候,C API 需要一个 NULL 指针。 在 CGO 中是否可能实现? 例如,在 Go 语言程序中,我想将 null 参数传递给 strcmp() 函数。 package strutil /* #include <stdlib.h> #include <stri...

41得票8回答
代码中的未初始化指针

我正在学习C++,我了解到如果指针未初始化,则可能会指向内存中的随机位置,并创建一些问题,这些内存可能被其他程序使用。 现在如果是这种情况,我们就不应该在代码的任何部分中出现以下行:int* ptr; 相反,我们应该有类似于int* ptr = NULL; //Is this going t...

22得票2回答
(int *)0是一个空指针吗?

这可以被视为对这个问题的扩展(我只关心C语言,但为了完整性加上了C++)。 C11标准在6.3.2.3.3处规定: 值为0的整型常量表达式,或者将这样一个表达式强制类型转换为 void * 类型,称为空指针常量。 我的个人理解是,0 和 (void *)0 表示空指针,它们的整数...

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

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

7得票3回答
使用StringUtils.isEmpty而不失去关于空指针的编译警告

我更喜欢使用org.apache.commons.lang.StringUtils类,而不是通常的if(myString == null || myString.equals("")),并且会这样写if(StringUtils.isEmpty(myString))。 然而,这种做法 - 至少...

13得票1回答
在 C++ 中,使用静态方法时对空指针进行解引用为什么不是未定义的行为?

我正在阅读关于C++中nullptr的一些特殊性质的帖子,其中一个例子让我有些困惑。 考虑以下内容(来自上述帖子的简化示例): struct A { void non_static_mem_fn() {} static void static_mem_fn() {...

21得票2回答
C++中的nullptr如何实现?

我很好奇如何使用 nullptr。标准 N4659 和 N4849 规定: 它必须具有类型 std::nullptr_t; 您不能获取其地址; 它可以直接转换为指针和成员指针; sizeof(std::nullptr_t) == sizeof(void*); 将其转换为 bool 的结果是...

10得票3回答
Android - 处理屏幕方向变化时的对话框

我正在覆盖Dialog类的onCreateDialog和onPrepareDialog方法。 我按照Reto Meier的《Professional Android Application Development》第5章的示例提取了一些XML数据,然后使用对话框显示信息。 我基本上按照示例...

18得票6回答
每个空指针常量都是一个空指针吗?

来自C17草案(6.3.2.3 ¶3): 值为0的整数常量表达式,或将这样的表达式强制转换为类型void *,被称为空指针常量67)。如果将空指针常量转换为指针类型,则所得到的指针,称为空指针,保证与任何对象或函数的指针比较时都不相等。 67)宏NULL在<stddef.h>(...

13得票5回答
通过取消引用一个空指针来分配一个引用

int& fun() { int * temp = NULL; return *temp; } 在上述方法中,我试图对空指针进行解引用。当我调用此函数时,它不会抛出异常。我发现当返回类型为引用时,如果返回类型为值,则不会抛出异常。即使将空指针的解引用分配给引用(如下行...