ainijiegeng
2023-08-03 11:07
#include <stdio.h>
#include <iostream>
int main()
{
int* p = nullptr;
{
int b = 20;
p = &b;
}
*p = 4;
printf(" *p is %d\n", *p);
system("pause");
return 0;
}
c++中清变量不清指针,b被回收,p不变,成为野指针,若此时内存被其他程序占用,则后果不堪设想。
p指向的是一块实际内存地址,就算b被回收了,p还是指向的那块地址,变的是那块地址存储的内容,所谓回收是存储在实际内存中的数据的数清理。
printf(" *p is %d\n", *p);
*p = 4;
可以这样,改一下位置
趣味 C++ 入门
30496 学习 · 184 问题
相似问题