问题标签 [null-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5255 浏览

c++ - 是否对空指针未定义的行为执行算术?

在我看来,下面的程序计算了一个无效的指针,因为NULL除了赋值和比较相等之外没有任何用处:

但是,GCC 或 Clang 中针对未定义行为的警告或工具似乎都没有表明这实际上是 UB。该算法是否真的有效并且我太迂腐了,或者这是我应该报告的检查机制的缺陷?

测试:

Clang 和 GCC 使用的 AddressSanitizer 似乎有很好的记录,它更专注于对坏指针的取消引用,所以这很公平。但其他检查也没有抓住它:-/

编辑:我问这个问题的部分原因是这些-fsanitize标志可以动态检查生成的代码中的明确性。这是他们应该抓住的东西吗?

0 投票
1 回答
93 浏览

java - Java 赋值:Forloop 不会退回到我的 while 循环中并给出空指针错误

在我的作业的这个片段中,我有两个成员和帐户类型的数组。它们通过在成员和成员帐户创建时提供的 ssn 联系在一起。我的问题是,在搜索完数组后,我收到一个错误,例如:我创建了一个 ssn 1111 名称的成员:John Doe state:UT Account:123 balance:1000

我需要它做的是打印下面的信息并在循环等待输入时退回到我的菜单中。

0 投票
6 回答
126 浏览

c++ - 空指针的奇怪行为

我创建了一个NULLApp的指针,但不知何故,NULL对象(App)的方法正在工作。这是我的代码:

附上头文件

运行结果在屏幕中:hello world。这是为什么?

0 投票
1 回答
340 浏览

c - C - AVL 树旋转实现上的空指针问题

我正在用 C 语言实现一个 AVL 树。我在下面发布了我的树旋转,以及我在尝试测试它们时遇到的 valgrind 错误。

为什么我会收到这些错误?我知道 valgrind 错误源于我使用空指针这一事实,但我无法准确指出我做错了什么。(我已经评论了 Valgrind 错误的行)

Valgrind 错误(rotateLeft 我得到了同样的结果):

0 投票
1 回答
6013 浏览

c - 为什么 va_arg 在 char* 类型的变量参数列表的末尾返回 NULL?

va_arg这是在下面著名的链接中所说的:

http://www.cplusplus.com/reference/cstdarg/va_arg/

Notice also that va_arg does not determine either whether the retrieved argument is the last argument passed to the function (or even if it is an element past the end of that list). The function should be designed in such a way that the number of parameters can be inferred in some way by the values of either the named parameters or the additional arguments already read.

除此之外,在我读到的一本一般的书中va_arg,所有示例都确保fixed参数之一始终是我们将要传递的变量参数的数量/计数。这个计数用于循环中前进va_arg到下一项,并且循环条件(使用计数)确保它在va_arg检索变量列表中的最后一个参数时退出。这似乎证实了网站上的上述段落"the function should be designed in such a way........" (above)

所以直截了当地说,va_arg有点愚蠢。但在从该网站获取的以下示例中va_endva_arg突然看起来很聪明。当到达类型变量参数列表的末尾时char*,它返回一个 NULL 指针。怎么会这样?我链接的最上面的一段清楚地说明了

"va_arg does not determine either whether the retrieved argument is the last argument passed to the function (or even if it is an element past the end of that list"

此外,下面的程序中没有任何内容可以确保在越过变量参数列表的末尾时应该va_arg返回一个 NULL 指针。那么为什么会在列表的末尾返回一个 NULL 指针呢?

输出

节目源链接

0 投票
3 回答
276 浏览

java - Android - NullPointerException

我得到一个 NullPointerException 正在破坏这一行的代码:

这是代码块:

我猜它与 MarkerOptions 变量有关,但我不确定它是否因为没有被初始化而中断?任何帮助将不胜感激。

0 投票
4 回答
308 浏览

java - 从非活动类访问 SQLite 时出现 NullPointerException

非活动类访问SQLite时,得到NullPointerException

文件->SessionDB.java

文件->Live.java

那么,最好的方法应该是什么?

0 投票
1 回答
16962 浏览

performance - Rust 的 Option 类型的开销是多少?

在 Rust 中,引用永远不能为 null,因此如果您确实需要 null,例如链表,请使用以下Option类型:

与简单的指针相比,在内存分配和取消引用的步骤方面涉及多少开销?编译器/运行时是否有一些“魔法”可以Option免费使用,或者比Option使用相同结构在非核心库中自行实现enum或将指针包装在向量中的成本更低?

0 投票
3 回答
974 浏览

c - 当我们对整数指针 ptr 使用“if(ptr==NULL)”时,NULL 指针是否隐式转换为类型 (int*)?

我知道 NULL 指针是(void*)0. 但是当我们使用如下语句时会发生什么:

哪里ptr可以是 achar或指针?是否float保证NULL隐式转换为左侧的类型,例如,在 C 中,返回的类型is但隐式转换为左值的类型?intmalloc()void*

0 投票
1 回答
202 浏览

segmentation-fault - 是否有可能作为异或的结果,并得到一个无效的指针?

我为异或链表编写代码。我有一个函数,我得到一个指针,使用属性 C.link = A XOR B。这里是这个函数的代码

但最后得到一个分段错误。用 GDB 调试表明,这是因为return (Node<T>*)((int)prev ^ (int)curr->np); 变量中的行这样的值

在异或的最后

在我看来,没有有效的指针,因此它遵循分段错误。我该如何解决?谢谢

Тhe 问题解决了。问题出在赋值运算符中

我删除了这两行,问题就消失了。

主程序称为赋值运算符,将旧对象的头部和尾部值分配给新对象。