C++编程中,什么是野指针?
在C++中,野指针是指向一个已删除的对象或未分配内存区域的指针。简单来说,就是指针指向的位置是不确定的,对野指针进行操作是非常危险的,可能会导致程序崩溃或出现难以调试的错误。
下面是一个C++代码例子来说明野指针的情况:
cpp
#include <iostream>
int main() {
int* ptr = new int(5); // 分配一个int类型的内存,并让ptr指向它
std::cout << "指针指向的值: " << *ptr << std::endl;
delete ptr; // 释放ptr指向的内存
// 此时ptr变成了野指针,但它仍然保存着之前指向内存的地址
// 尝试访问野指针指向的内存是未定义行为
// 下面这行代码是错误示范,仅用于说明野指针的问题
std::cout << "野指针指向的值: " << *ptr << std::endl;
return 0;
}
在上述代码中,首先使用 new