程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言指針使用經驗總結之懸垂指針

C語言指針使用經驗總結之懸垂指針

編輯:關於C

如果將作用域A的變量地址賦給在作用域B的變量指針。當A中相應變量的生存周期結束後,會使B的指針出現“懸垂指針”的現象(懸垂指針指向曾經存放對象的內存,但該對象已經不再存在了。懸垂指針往往導致程序錯誤,而且很難檢測出來。)如下代碼:

  #include<iostream>

  #include <windows.h>

  using namespace std;

  int *p=NULL;

  void fun()

  {

  int i=10;

  p=&i;

  }

  void main()

  {

  fun();

  cout<<"*p= "<<*p<<endl;

  Sleep(1000);

  cout<<“一秒鐘後,fun()中的i變量的存儲空間被釋放,p所指對象的值為:"<<endl<<"*p= "<<*p<<endl;

  }

  輸出為:

  *p= 10

  一秒鐘後,fun()中的i變量的存儲空間被釋放,p所指對象的值為:

  *p= 1245056

  Press any key to continue

  可見,fun()運行完一秒鐘後,p成為懸垂指針。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved