亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

是不是任何程序都要進行內存管理呢?

以前一直都沒有怎么做內存管理,沒有申請直接用的,問一下在什么情況下要進行內存管理呢?

正在回答

2 回答

使用new關鍵字是申請堆空間(heap),堆空間比棧空間(stack)容量大,一般局部變量使用??臻g,占用空間較大的變量用堆空間。菜鳥回答,僅供參考。

1 回復 有任何疑惑可以回復我~
#1

碰碰碰氣球 提問者

懂了,直接定義的是用??臻g,不用管理內存
2017-02-02 回復 有任何疑惑可以回復我~

//僅是為了說明,代碼屬于不全代碼。



#include <iostream>//代碼區


using namespace std;//代碼區


void Reverse( char datStr[], char sreStr[] )//代碼區

{

int len = strlen(sreStr);//局部變量→棧區


static int j=0;//靜態變量→全局數據區 ? ? //static 靜態的


for(int i=len-1; i<=0;i-- )

{

datStr[j]=sreStr[i];

j++;


};


};

int a = 0;//全局變量 → 全局數據區


int main()//代碼區

{?

char sre[100]={0};


a = 1;//(全局變量) 可訪問


j = 1;//(靜態局部變量)不可訪問

system("pause");

return 0; ??

};?

//局部變量:每次執行函數的時候,系統都會在棧區分配一個空間

//每次函數結執行完之后,局部變量(空間)會被銷毀,把這個空間還給系統。



//全局變量:不會被銷毀永遠存在,直到我們的應用程序運行結束。


//全局變量與靜態局部變量的區別:

//全局變量:可以在任何地方訪問。

//靜態局部變量:在聲明的函數體內進行訪問.


?用New分配一個變量時,不用時必須用delete,否則在堆中不會被釋放,占用內存,導致崩潰.

delete 刪除 ,后面+地址(指針)

當我們分配的是數組是,釋放格式為:

delete []? p;

?在堆中創建一個對象數組,C++要求對象必須有一個默認的構造函數.

應該能看懂 堆和棧區的區別吧~new出來的才進入堆區

靜態局部變量還有更深的 不說了

2 回復 有任何疑惑可以回復我~
#1

碰碰碰氣球 提問者

多謝啦
2017-05-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之離港篇
  • 參與學習       122678    人
  • 解答問題       493    個

C++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通

進入課程

是不是任何程序都要進行內存管理呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號