青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

MySpace

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  18 隨筆 :: 2 文章 :: 10 評論 :: 0 Trackbacks

malloc負責在堆上申請一塊內存并返回一個指向該內存塊的 void 類型的指針, free負責釋放掉該指針指向的內存塊。
需要明白的是 malloc 申請了多少,free 的時候就強制釋放多少,不管該內存塊是否是連續的。
例如

//我先申請一個內存塊,大小是 100MB
void *memory = malloc(1024 * 1024 * 100);
//現在我可以在這兩個字節中任意的放東西了。那我就先放進去一個 string
//需要知道的是string在不同編譯器中的長度是不一樣的,windows 下的 VS2005 中 ,sizeof(string) = 32
//SunOS 5.8下的 G++ 中,sizeof(string) = 4
string *s = new (memory)string("123456789");
//此時的內存塊中前4(32)個字節被利用起來,后面將近100MB的空間都是空閑的。
//s指針指向的地址跟 memory 指向的地址是相同的( memory 的首地址沒有改變)
//那此時我釋放掉該內存塊
free(memory);
delete s;
//兩條語句執行哪個都不會出現內存錯誤(內存訪問錯誤),千萬別兩條語句一起用,那肯定出錯。就算是在戰爭中,戰敗的一方也只投向一次,內存也是這樣的。free(memory) 釋放掉了這100MB的內存,那 delete s 呢?測試之后發現它也是釋放掉了這 100MB 的內存。區別是delete會去執行 s 的析構函數,而 free 不會。

//另外一種情況:memory 申請的內存小于 new 出來的內存大小。例如
void *memory = malloc(1);
string *s = new (memory)string("123456789");
//這樣就出現了內存越界,結果是不可預測的,什么情況都有可能發生。
//此時的 free(memory) 只刪除了一個字節,delete s  同樣也是。

其實我們可以把 new delete 看成是 mallco free 的封裝,編譯器在我們遇見 new 的時候會自動的生成 mallco 代碼,然后再調用構造函數,遇見 delete 的時候先執行析構函數然后執行 free(當然編譯器還做了更多的事情)。所以在內存越界的時候我們對界外的數據無能為力,那些數據也就成了潛在的危險。運氣好的話可以像世外桃源一樣悠哉悠哉,趕上光景不好的時候要不覆蓋掉別人要不就被別人覆蓋。不同的編譯器對于越界的處理也不同,就拿上面的簡單的代碼來說,在VS2005(VC8.0)下運行時(釋放的時候)才會報錯,而在 G++ 下則沒有問題。
再找個例子

 //申請兩個字節
 void *memory = malloc(2);

 //從 memory 的首地址開始創建1000個整形數組并給各元素進行賦值
 int num = 1000;
 int *s = new (memory)int[num];

 for(int i = 0; i < num ; i++)
 {
  cout << "i = " << i << endl;
  s[i] = i;
 }
 delete s;
 
對于這段代碼 i 的最大值能為 1000 嗎?這種越界的問題很難判斷的,我在VS2005下 i 最大值到了 94 (在我的測試用例中),但是在G++ 下卻能到 999,而且 delete s 也沒有出錯。在 Lniux 下用 KDEV 也能到 999,但是在 delete s 的時候會出錯。不知道 G++ 是不是在編譯的時候做過了一些優化處理,這個還要研究一下。

posted on 2008-06-18 15:51 yang-chunlei 閱讀(395) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本久久精品一区二区| 欧美1区免费| 免费在线成人| 欧美a一区二区| 欧美成人首页| 亚洲精品免费看| 亚洲激情一区二区| 亚洲免费播放| 欧美一区二区日韩一区二区| 性欧美8khd高清极品| 久久久精品国产一区二区三区| 日韩亚洲在线| 亚洲无毛电影| 久久99在线观看| 欧美a级一区二区| 亚洲精品视频二区| 亚洲一区二区在线视频| 欧美一区三区三区高中清蜜桃 | 久久五月婷婷丁香社区| 美女黄色成人网| 国产精品久久久| 精品成人在线视频| 在线视频你懂得一区| 久久国产精品一区二区三区| 欧美福利小视频| 亚洲一区二区三区在线播放| 久久亚洲精品伦理| 国产精品扒开腿爽爽爽视频| 亚洲电影av| 久久丁香综合五月国产三级网站| 欧美国产极速在线| 亚洲主播在线观看| 欧美成人第一页| 国产在线一区二区三区四区| 亚洲视频在线免费观看| 美女视频黄a大片欧美| 中国日韩欧美久久久久久久久| 久久国产主播精品| 国产精品网站在线| 在线一区日本视频| 亚洲国产精品国自产拍av秋霞| 午夜精品久久久久久久99黑人| 欧美噜噜久久久xxx| 国产在线视频欧美| 欧美一区二区在线免费播放| 日韩一区二区精品视频| 欧美成年人网| 亚洲国产日韩欧美在线图片 | 亚洲大片免费看| 久久国产66| 亚洲一级黄色片| 欧美日韩高清在线一区| 亚洲欧洲另类国产综合| 免费成年人欧美视频| 欧美在线视频免费| 国产日产欧美a一级在线| 亚洲欧美日韩视频二区| 一本色道久久综合狠狠躁篇怎么玩| 久久亚洲欧洲| 亚洲丰满少妇videoshd| 欧美91福利在线观看| 久久久另类综合| 韩国一区二区三区在线观看| 欧美一区二区三区电影在线观看| 中文日韩电影网站| 亚洲尤物在线视频观看| 欧美视频一区二区三区…| 一本久道久久综合狠狠爱| 亚洲国产日韩一区二区| 欧美激情视频在线播放| 一本色道久久99精品综合 | 久久国产婷婷国产香蕉| 激情一区二区三区| 欧美激情亚洲激情| 欧美日韩国产成人高清视频| 中文精品一区二区三区| 亚洲视频免费在线| 国产拍揄自揄精品视频麻豆| 久久精品五月| 久久久久亚洲综合| 亚洲免费久久| 亚洲欧美成人| 亚洲福利视频专区| 9久re热视频在线精品| 国产精品视频最多的网站| 久久久久成人精品| 欧美高清视频一区二区三区在线观看| 99精品免费视频| 亚洲欧美日韩精品久久亚洲区| 精久久久久久| 日韩视频在线一区| 国内精品视频在线观看| 亚洲国产另类精品专区| 国产精品视频专区| 亚洲福利视频二区| 国产精品日韩在线观看| 欧美成人综合在线| 国产精品久久久久久久久借妻| 久久亚洲国产成人| 欧美日韩网站| 久久久久久久久伊人| 欧美高清视频在线播放| 久久精品色图| 欧美三级电影精品| 免费看黄裸体一级大秀欧美| 欧美视频三区在线播放| 欧美gay视频激情| 国产麻豆午夜三级精品| 亚洲三级影院| 在线欧美影院| 欧美在线一二三四区| 一本大道av伊人久久综合| 久久精品综合一区| 性久久久久久久| 欧美精品日韩综合在线| 久久婷婷影院| 国产日韩欧美制服另类| 99视频在线精品国自产拍免费观看| 韩日精品在线| 午夜精品av| 欧美一区二区三区精品电影| 欧美女同在线视频| 欧美大色视频| 一区二区三区中文在线观看 | 先锋影音国产一区| 欧美人与性动交α欧美精品济南到| 久久综合伊人| 久久亚洲欧洲| 久久久.com| 国产一区二区剧情av在线| 亚洲永久免费| 欧美一区二区视频97| 国产精品网红福利| 亚洲影视综合| 性色av一区二区怡红| 欧美亚洲成人免费| 一本久久青青| 亚洲男人的天堂在线aⅴ视频| 欧美日本精品| 亚洲最黄网站| 亚洲欧美在线免费| 国产精品视频一二三| 亚洲欧美日本国产有色| 性色av一区二区三区在线观看| 国产精品日日做人人爱 | 欧美r片在线| 欧美粗暴jizz性欧美20| 亚洲国产美女| 欧美精品在线播放| 一本久久知道综合久久| 午夜免费日韩视频| 国产在线精品二区| 久久男女视频| 最近中文字幕mv在线一区二区三区四区| 亚洲欧洲综合另类| 国产精品xxxxx| 久久精品国产第一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产主播一区二区三区| 老司机精品视频网站| 亚洲日本欧美日韩高观看| 亚洲欧美美女| 亚洲第一精品在线| 欧美日韩黄视频| 午夜在线成人av| 亚洲高清视频在线| 亚洲欧美在线看| 亚洲二区精品| 国产精品久久一级| 久热这里只精品99re8久| 亚洲激情偷拍| 久久精品国产清高在天天线| 亚洲成色999久久网站| 欧美日韩一区二区视频在线观看| 亚洲一区在线免费| 亚洲国产精品一区二区久 | 亚洲黄色在线看| 国产精品国产三级国产普通话99| 欧美一区二区三区播放老司机| 亚洲国产精品99久久久久久久久| 亚洲影院一区| 在线观看国产成人av片| 欧美日韩综合视频网址| 久久久久久久999| 亚洲视频在线播放| 欧美激情导航| 久久久久久一区| 国产精品99久久久久久宅男| 国内外成人在线| 国产精品国色综合久久| 欧美大色视频| 久久久亚洲精品一区二区三区 | 欧美亚洲网站| 午夜在线一区| 99精品欧美一区二区蜜桃免费| 国产欧美亚洲一区| 欧美性视频网站| 欧美精品日韩一区| 麻豆久久婷婷| 久久久福利视频|