为什么这个if语句没有seg-fault[C++]
why does this if statement not seg fault [C++]
假设我定义一个指针变量为某种类类型ptrClass:
ptrClass *ptr;
假设这个CCD_ 1有一个名为CCD_。
所以如果我们这样做:
ptr->get();
这将导致seg故障。
但如果我们执行if(ptr->get())
,这不会导致seg错误(if语句根本不执行)。有人能解释为什么会这样吗?为了检查if语句条件,程序是否执行ptr->get()
,这将导致seg故障?
有bug的代码会做一些你意想不到的事情。真的就这么简单。修复这个bug,神秘感就会消失。
调用无效指针的方法是未定义的行为,任何事情都可能发生。
您没有显示get()
的作用,但如果get()
不使用this
,也不是virtual
,则程序不会取消引用ptr
,因此不会使用无效指针。
相关文章:
- Seg Fault Issue C++ (file IO / getline)
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 为什么我的C++代码中出现'Segmentation Fault: 11'行?
- C++ - 将元素按升序插入数组的 SEG 错误
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么我在使用 istream 迭代器时会出现 seg 错误?
- 字符串上的合并排序上的 Seg 错误
- C++函数过载会导致 SEG 故障
- 导致 Seg 错误的 SingleLinkedList 的析构函数
- g++ 9.2.1 (Linux) 会导致 seg 错误,但 Windows 上的代码块不会
- 带升压的 SEG 故障::make_shared / 特征3 内存.h.
- 循环时无法进入:"Segmentation fault"
- 函数抛出seg错误,我不知道为什么
- Microsoft Visual Studio 2019交叉编译CMake库 - 有效,但存在SEG错误
- Getter seg fault
- 创建一个包含要绘制的项的类(seg-fault)
- 为什么这个if语句没有seg-fault[C++]
- 在二进制搜索树中插入元素时出现Seg Fault 11
- Seg-Fault at BST remove() Function
- libusb_get_device_list seg fault