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

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

14得票2回答
为什么使用gorm的db.First()会出现“invalid memory address or nil pointer dereference”错误?

我无法确定是我做了什么傻事还是在gorm中发现了一个bug。虽然我非常清楚“无效的内存地址或空指针引用”的含义,但我完全不知道为什么它会出现在这里。 简单地说,我调用db.First(),但出现了毫无明显原因的panic错误。 以下是我代码的相关部分:package main impor...

38得票4回答
调用未初始化的对象(空指针)上的方法

如果在Objective-C中调用一个空对象(指针),会有什么正常的行为?它不应该产生某种错误(如分段错误,空指针异常……)吗? 如果这是正常行为,是否有一种方法可以更改此行为(通过配置编译器),以便程序在运行时引发某种错误/异常? 为了使我的意思更清楚,这里有一个例子。 有这个类: ...

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

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

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

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

16得票4回答
NULL宏或NULL常量

我目前正在阅读一本关于C ++的书,作者在其中解释说最好使用常量而不是NULL宏,但没有详细说明原因或给出任何优缺点。 那么为什么最好使用常量:const int NULL = 0; int *ptr = NULL; 改为:int *ptr = NULL; 唯一的解释是NULL宏不具有类型安全性。

33得票3回答
通过“myPtr > 0”进行空指针检查

在我看过的一些遗留代码中,我遇到了以下空指针检查。 if( myPtr > 0 ) { ... } 使用这种if检查来检查空指针,是否存在任何技术风险?

41得票5回答
为什么C++中的NULL通常是整数字面值而不是像C语言一样是指针?

我已经写了许多年的C++,使用nullptr来表示空指针。我也知道C语言中的NULL,这是一个空指针常量,类型为void*。 由于某些原因,我不得不在我的C++代码中使用NULL。当进行一些模板参数推断时,编译器告诉我我的NULL实际上是一个......长整型。所以,我进行了双重检查:#inc...

19得票4回答
在构造函数中,"this"指针何时为空?

我遇到了一个问题,在构造函数中使用了this指针,但是这个指针在那个时候恰好是空的。 例如: MyClass::MyClass() { // The 'this' pointer happened to be null in this case, // and the progr...

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

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