C++動態內存管理

1、C++動態內存

在C++程序中,內存需求都是在編寫程序的時候聲明變量來肯定,可是程序在運行過程當中須要動態分配內存的狀況,C++語言將運算符new和delete合成在一塊兒。程序員

一、特色

中經過new關鍵字向系統內存申請。ide

C++中的動態內存分配是基於數據類型進行的。函數

delete關鍵字用於內存釋放。.net

二、語法

datatype *pointer = new datatype;
  //  其它代碼
  delete pointer;

datatype能夠是C語言的基本數據類型,也能夠是結構體,還能夠是類。指針

pointer是一個指針,指向new返回的地址。code

例如:對象

int *pi= new int;  // 動態分配一個整數大小的內存
  (*pi)=10;
  delete pi;  // 釋放pi指向的內存

內存

CGirl *pgirl=new CGirl;   // 動態分配CGirl類

  strcpy(pgirl->name,"西施");
  pgirl->age=22;
  pgirl.height=168;
  strcpy(pgirl->sc,"火辣");
  strcpy(pgirl->yz,"漂亮");
  pgirl->show();

  delete pgirl; // 釋放pgirl指向的內存

若是new出來的是類,至關於建立對象,因此會調用構造函數,delete的時候也會調用析構函數。開發

2、應用經驗

有些程序員認爲動態內存分配是高大上的技術,可是,在實際開發中,須要動態分配內存的場景極少,string和vector已經足夠方便,若是不是非用不可的狀況,採用動態分配內存就是給本身挖坑。博客

若是應用開發中必定要用動態內存分配技術,建議把它封裝在類中,並在析構函數中編寫釋放內存的代碼,防止內存泄漏。

3、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、做者和原文的連接。
來源:C語言技術網(www.freecplus.net)
做者:碼農有道

若是這篇文章對您有幫助,請點贊支持,或在您的博客中轉發個人文章,謝謝!!!若是文章有錯別字,或者內容有錯誤,或其餘的建議和意見,請您留言指正,很是感謝!!!

相關文章
相關標籤/搜索