解引用空指针
Dereferencing null pointer
我试图在c++中编写一个非常简单的指针赋值:
float *src;
if(someCondition == true)
src = somePointer;
else
src = someOtherPointer;
然而,当我试图访问src时,我得到一个警告说"空指针的解引用(从变量src加载)"
同样,如果我尝试给src一些初始值,像这样:
float *src = aPointer;
if(someCondition == true)
src = somePointer;
else
src = someOtherPointer;
我得到一个警告,说分配给src的初始值永远不会被读取。尽管这似乎并不影响我正在努力做的事情,但我正在努力摆脱所有潜在的问题。这里有什么问题吗?
任何帮助都是感激的。谢谢!
由于您使用指针而不是引用,因此期望NULL
是指针的可能值。
检查NULL:
可能符合您的兴趣。if(!src) {/*handle null case*/}
假设somePointer
和someOtherPointer
中的一个或两个为0/NULL
似乎编译器不够聪明,无法意识到src
将始终被初始化。虽然IDK为什么会假设指针为NULL,但更有可能是一些垃圾值。这可能可以通过使用三元操作符(?:)将初始化设置为单个语句来解决:
float* src = someCondition ? somePointer : someOtherPointer;
编辑:尝试将src
初始化为NULL。这应该可以摆脱初始化警告,我怀疑它会创建一个未使用的值警告。
相关文章:
- 运行时错误:引用绑定到类型为"int"的空指针
- C++ 取消引用指向矢量的空指针时的分段错误
- 错误 C6011:取消引用空指针"NAME"。C++
- cppcheck取消引用空指针
- 如何使用 GSL 库将雅可比矩阵引用为空指针
- 在循环迭代期间将引用保存到矢量中的空指针
- 为什么我在C++中有一个空指针取消引用
- 如何在python中创建等效的结构并使用malloc更改空指针的引用
- Cppcheck可能的空指针取消引用:
- 数组访问导致空指针取消引用
- 取消引用一个空指针数组
- 为什么 std::shared_ptr 取消引用不会引发空指针异常(或类似异常)?
- 取消引用指向指针数组的空指针
- 对字段的访问将导致空指针的解引用
- 可能的空指针解引用-否则检查它是否为空是多余的
- 为什么我的程序没有从取消引用空指针中捕获异常?
- 为什么空指针解引用不是一个异常
- 为什么解引用空指针是未定义的行为
- 解引用空指针
- 如何使用KDevelop查看在哪里引用空指针