指针常见的错误
?#include<iostream>
using namespace std;
int main()
{int *p=new int;*p=3;cout<<"將3賦給p的地址后,指針p讀取的值:\t"<<*p<<endl;delete p;//刪除空間; p=0;cout<<"將刪除空間后,指針p讀取的值:\t\t"<<*p<<endl;long *p1=new long;cout<<"創(chuàng)建新空間后,指針p中保存的地址:\t"<<p<<endl;*p1=9999;cout<<"指向新空間的指針p1保存的地址:\t"<<p1<<endl;*p=23;cout<<"將23賦給p的地址后,指針p讀取的值:\t"<<*p<<endl;cout<<"將23賦給p的地址后,指針p1讀取的值:\t"<<*p1<<endl;
}
/*p指針指向的空間刪除后, p變成了迷途指針,因為指向的空間不存在了,因為對p使用delete的時候
告訴編譯器 可以用該內(nèi)存區(qū)域保存其它數(shù)劇,所以就保存隨機數(shù),由于編譯器會默認(rèn)將釋放的內(nèi)存
空間回收然后分配給新開辟的空間,因此新開辟的空間指向的是釋放掉的空間,也就是p所指向的空間
*/ ?
?
總結(jié)
- 上一篇: by截取字段 group_深入理解 gr
- 下一篇: 堆的C语言实现——堆与堆排序(二)