动态分配内存后又被释放。那么指针会变成野指针,它接着能不能被再赋值为一个有效的指针???

Python013

动态分配内存后又被释放。那么指针会变成野指针,它接着能不能被再赋值为一个有效的指针???,第1张

当然没有问题了

MSGpkt 这个变量是一个指针变量。在它的内存当中可以存放一个指针,就是一个地址值。

你开始的时候在这个内存当中存放的一个指针,然后释放了那块地址,这里你要分清楚它释放的是哪个地址,注意,释放的是该指针变量所指向的内存空间的内存,而不是该指针变量的内存空间

所以就算是你释放了之后,依然可以对这个指针变量进行再次的赋值,给它赋一个新的指针。

可以很明确的告诉你不是野指针的问题.

string1 和 string2 两个都是指向字符串字面值的字符指针, 它们所指向的内容位于代码段, 因而就是只读的, 而strcat函数对只读区域进行写操作必然会引起运行时错误.

解决方案, 不要用字符指针, 改为字符数组. 例如: char string1[32]

输出结果还是 1,按理说 i 已经消失了才对的啊

我想,野指针是指该变量的指向已经不可预测,并不是说一定不指向该变量了.

所以我想你多试几次,应该会发现它的值是不确定的了.

也就是说这次的1是是不一定的了.