c/c++程序的內(nèi)存分配

字號(hào):

我們都知道,c/c++程序的內(nèi)存分配,有這樣幾個(gè)存儲(chǔ)區(qū)。
    全局/靜態(tài)數(shù)據(jù)區(qū):存儲(chǔ)全局變量,和靜態(tài)變量static聲明的變量
    常量存儲(chǔ)區(qū):存儲(chǔ)常量,如char *s=\"abcde\"; 或者 const int i =10;代碼區(qū):這個(gè)不說(shuō)了。代碼放的地兒棧:臨時(shí)變量,參數(shù)等,有大小限制,vc6/7: 1M
    考試大提示: 堆: 用戶自己維護(hù)的空間,內(nèi)存使用需要自己申請(qǐng),自己釋放。大小基本不限(4G)
    example:
    #include
    using namespace std;
    int global = 100; //全局/靜態(tài)區(qū)
    const int N = 10; //常量區(qū)
    int main()
    {
    static int a = 0; //全局/靜態(tài)區(qū)
    char arr[100]=\"test\";//arr分配在棧上,\"test\"分配到常量區(qū),還有一個(gè)副本在棧上
    char *s = \"abcde\";//s分配在棧上,\"abcde\"分配在常量區(qū)
    char*str = NULL; //str分配在棧上
    str = new char[10];//str所指向的空間分配在堆上
    delete []str;
    return 0;
    }