ï»?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ‹¹…è°ˆ C++ 中的 new/delete å’?new[]/delete[]-‹¹Žå—软äšgå¼€å‘|å±×ƒ¸œè½¯äšgå¼€å?‹¹Žå—èµ¢å¯d¿U‘技软äšgå¼€å‘å…¬å?/title> <meta name="keywords" content="‹¹…è°ˆ C++ 中的 new/delete å’?new[]/delete[]"/> <meta name="description" content="在C++中,你也许ç»å¸æ€‹É用newå’Œdeleteæ¥åЍæ€ç”³è¯·å’Œé‡Šæ”¾å†…å­˜åQŒä½†ä½ å¯æ›¾æƒ³˜q‡ä»¥ä¸‹é—®é¢˜å‘¢åQŸnewå’Œdelete是函数å—åQŸnewåˆæ˜¯ä»€ä¹ˆï¼Ÿä»€ä¹ˆæ—¶å€™ç”¨å®ƒä»¬åQŸä½ çŸ¥é“operatornewå’Œoperatordeleteå—?ä¸ÞZ»€ä¹ˆnew(size_t);  //allocateanarrayvoi"/> <link href="/css/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> </head> <body> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <div class="head"> <div class="top"><span><a href="/html/sitemap.xml">XML</a> | <a href="/html/sitemap.html">HTML</a> | <a href="/sitemap.txt">TXT</a></span></div> <div class="bank"> <div class="logo"> <h1><strong><a href="http://www.themmauniversity.com" style="margin-right:10px">‹¹Žå—软äšgå¼€å?/a></strong><strong><a href="http://www.themmauniversity.com">å±×ƒ¸œè½¯äšgå¼€å?/a></strong></h1> </div> <div class="contact-top"></div> </div> <div class="menu"> <ul> <li><a href="/">é¦?#160;   ™å?/a></li> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">å¼€å‘优åŠ?/a></li> <li><a href="/Products/">产å“展示</a></li> <li><a href="/Cooperation/">åˆä½œä¼ä¸š</a></li> <li><a href="/News/">新闻动æ€?/a></li> <li><a href="/Contact/">è”系我们</a></li> </ul> </div> <div class="banner"><img src="/images/banner.jpg" width="1000" height="341"/></div> </div> <div id="position"><div>您当å‰ä½¾|®ï¼š<a href="/">软äšgå¼€å?/a> >> <a href="/News/">新闻动æ€?/a> >> <a href="/News/Industry/">软äšgå¼€å‘行业资è®?/a> >> ‹¹è§ˆæ–‡ç« </div></div> <div class="youshi_f1" id="youshi_tdyx"> <div class="youshi01"> <h1 class="article_title">‹¹…è°ˆ C++ 中的 new/delete å’?new[]/delete[]</h1> <div class="article_author">æ·ÕdŠ æ—‰™—´åQ?016-11-8 15:21:50 文章作者:<a href="/">‹¹Žå—软äšgå¼€å?/a> ‹¹è§ˆ‹Æ¡æ•°åQ?Script Language="Javascript" Src="/item/GetHits.asp?Action=Count&GetFlag=0&m=1&ID=2920"></Script></div> <div class="article_main"><div id="MyContent"><p><span style="font-size: 14px;">  åœ?C++ 中,你也许ç»å¸æ€‹Éç”?new å’?delete æ¥åЍæ€ç”³è¯·å’Œé‡Šæ”¾å†…å­˜åQŒä½†ä½ å¯æ›¾æƒ³˜q‡ä»¥ä¸‹é—®é¢˜å‘¢åQ?/span></p><p><span style="font-size: 14px;">  new å’?delete 是函数å—åQ?/span></p><p><span style="font-size: 14px;">  new [] å’?delete [] åˆæ˜¯ä»€ä¹ˆï¼Ÿä»€ä¹ˆæ—¶å€™ç”¨å®ƒä»¬åQ?/span></p><p><span style="font-size: 14px;">  你知é?operator new å’?operator delete å—?</span></p><p><span style="font-size: 14px;">  ä¸ÞZ»€ä¹?new [] 出æ¥çš„æ•°¾l„有时å¯ä»¥ç”¨ delete 释放有时åˆä¸è¡Œï¼Ÿ</span></p><p><span style="font-size: 14px;">  â€?/span></p><p><span style="font-size: 14px;">  如果你对˜q™äº›é—®é¢˜éƒ½æœ‰ç–‘问的è¯åQŒä¸å¦¨çœ‹çœ‹æˆ‘˜q™ç¯‡æ–‡ç« ã€?/span></p><p><span style="font-size: 14px;">  new å’?delete 到底是什么?</span></p><p><span style="font-size: 14px;">  如果扑ַ¥ä½œçš„åŒå­¦çœ‹ä¸€äº›é¢è¯•的书,我相信都会é‡åˆ°è¿™æ ïLš„题:sizeof 䏿˜¯å‡½æ•°åQŒç„¶åŽä‹Då‡ÞZ¸€å †çš„ç†ç”±æ¥è¯æ˜?sizeof 䏿˜¯å‡½æ•°ã€‚在˜q™é‡ŒåQŒå’Œ sizeof ¾cÖM¼¼åQŒnew å’?delete ä¹Ÿä¸æ˜¯å‡½æ•ŽÍ¼Œå®ƒä»¬éƒ½æ˜¯ C++ 定义的关键字åQŒé€šè¿‡ç‰¹å®šçš„语法å¯ä»¥ç»„æˆè¡¨è¾‘ּ。和 sizeof ä¸åŒçš„æ˜¯åQŒsizeof 在编译时候就å¯ä»¥¼‹®å®šå…¶è¿”回å€û|¼Œnew å’?delete 背åŽçš„æœºåˆ¶åˆ™æ¯”è¾ƒå¤æ‚ã€?/span></p><p><span style="font-size: 14px;">  ¾l§ç®‹å¾€ä¸‹ä¹‹å‰ï¼Œè¯·ä½ æƒÏxƒ³ä½ è®¤ä¸?new 应该è¦åšäº›ä»€ä¹ˆï¼Ÿä¹Ÿè®¸ä½ ç¬¬ä¸€å应是,new ä¸å°±å’?C 语言中的 malloc 函数一样嘛åQŒå°±ç”¨æ¥åЍæ€ç”³è¯ïL©ºé—´çš„。你½{”对了一åŠï¼Œçœ‹çœ‹ä¸‹é¢è¯­å¥åQ?/span></p><p><span style="font-size: 14px;">  string *ps = new string("hello world");</span></p><p><span style="font-size: 14px;">  你就å¯ä»¥çœ‹å‡º new å’?malloc ˜q˜æ˜¯æœ‰ç‚¹ä¸åŒçš„,malloc 甌™¯·å®Œç©ºé—´ä¹‹åŽä¸ä¼šå¯¹å†…å­˜˜q›è¡Œå¿…è¦çš„åˆå§‹åŒ–åQŒè€?new å¯ä»¥ã€‚所ä»?new expression 背åŽè¦åšçš„äº‹æƒ…ä¸æ˜¯ä½ æƒŒ™±¡çš„那么简å•。在我用实例æ¥è§£é‡?new 背åŽçš„æœºåˆ¶ä¹‹å‰ï¼Œä½ éœ€è¦çŸ¥é?operator new å’?operator delete 是什么玩æ„ã€?/span></p><p><span style="font-size: 14px;">  operator new å’?operator delete</span></p><p><span style="font-size: 14px;">  ˜q™ä¸¤ä¸ªå…¶å®žæ˜¯ C++ 语言标准库的库函敎ͼŒåŽŸåž‹åˆ†åˆ«å¦‚ä¸‹åQ?/span></p><p><span style="font-size: 14px;">  void *operator new(size_t);     //allocate an object</span></p><p><span style="font-size: 14px;">  void *operator delete(void *);    //free an object</span></p><p><span style="font-size: 14px;">  void *operator new[](size_t);     //allocate an array</span></p><p><span style="font-size: 14px;">  void *operator delete[](void *);    //free an array</span></p><p><span style="font-size: 14px;">  åŽé¢ä¸¤ä¸ªä½ å¯ä»¥å…ˆä¸çœ‹åQŒåŽé¢å†ä»‹ç»ã€‚å‰é¢ä¸¤ä¸ªå‡æ˜?C++ 标准库函敎ͼŒä½ å¯èƒ½ä¼šè§‰å¾—˜q™æ˜¯å‡½æ•°å—?请ä¸è¦æ€€ç–‘,˜q™å°±æ˜¯å‡½æ•ŽÍ¼C++ Primer ä¸€ä¹¦ä¸Šè¯´è¿™ä¸æ˜¯é‡è² new å’?delete 表达å¼ï¼ˆå¦?operator= ž®±æ˜¯é‡è² = æ“作½W¦ï¼‰åQŒå› ä¸?new å’?delete 是ä¸å…许é‡è²çš„ã€‚ä½†æˆ‘è¿˜æ²¡æžæ¸…楚ä¸ÞZ»€ä¹ˆè¦ç”?operator new å’?operator delete æ¥å‘½å,比较费解。我们åªè¦çŸ¥é“å®ƒä»¬çš„æ„æ€å°±å¯ä»¥äº†ï¼Œ˜q™ä¸¤ä¸ªå‡½æ•°å’Œ C 语言中的 malloc å’?free 函数有点åƒäº†åQŒéƒ½æ˜¯ç”¨æ¥ç”³è¯·å’Œé‡Šæ”¾å†…存的,òq¶ä¸” operator new 甌™¯·å†…存之åŽä¸å¯¹å†…å­˜˜q›è¡Œåˆå§‹åŒ–,直接˜q”回甌™¯·å†…存的指针ã€?/span></p><p><span style="font-size: 14px;">  我们å¯ä»¥ç›´æŽ¥åœ¨æˆ‘们的½E‹åºä¸­ä‹É用这几个函数ã€?/span></p><p><span style="font-size: 14px;">  new å’?delete èƒŒåŽæœºåˆ¶</span></p><p><span style="font-size: 14px;">  知é“上é¢ä¸¤ä¸ªå‡½æ•°ä¹‹åŽåQŒæˆ‘们用一个实例æ¥è§£é‡Š new å’?delete 背åŽçš„æœºåˆÓž¼š</span></p><p><span style="font-size: 14px;">  我们ä¸ç”¨½Ž€å•çš„ C++ 内置¾cÕdž‹æ¥ä‹Dä¾‹ï¼Œä½¿ç”¨å¤æ‚一点的¾cȱ»åž‹ï¼Œå®šä¹‰ä¸€ä¸ªç±» AåQ?/span></p><p><span style="font-size: 14px;">  class A</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  public:</span></p><p><span style="font-size: 14px;">  A(int v) : var(v)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  fopen_s(&file, "test", "r");</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  ~A()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  fclose(file);</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  private:</span></p><p><span style="font-size: 14px;">  int var;</span></p><p><span style="font-size: 14px;">  FILE *file;</span></p><p><span style="font-size: 14px;">  };</span></p><p><span style="font-size: 14px;">  很简å•,¾c?A 中有两个¿U有æˆå‘˜åQŒæœ‰ä¸€ä¸ªæž„é€ å‡½æ•°å’Œä¸€ä¸ªæžæž„函敎ͼŒæž„造函æ•îC¸­åˆå§‹åŒ–ç§æœ‰å˜é‡?var ä»¥åŠæ‰“开一个文ä»Óž¼Œæžæž„函数关闭打开的文件ã€?/span></p><p><span style="font-size: 14px;">  我们使用</span></p><p><span style="font-size: 14px;">  class *pA = new A(10);</span></p><p><span style="font-size: 14px;">  æ¥åˆ›å»ÞZ¸€ä¸ªç±»çš„对象,˜q”回其指é’?pA。如下图所½C?new 背åŽå®Œæˆçš„工作:</span></p><p><span style="font-size: 14px;">  ½Ž€å•æ€È»“一下:</span></p><p><span style="font-size: 14px;">  首先需è¦è°ƒç”¨ä¸Šé¢æåˆ°çš„ operator new 标准库函敎ͼŒä¼ å…¥çš„傿•îCØ“ class A 的大ž®ï¼Œ˜q™é‡Œä¸?8 个字节,至于ä¸ÞZ»€ä¹ˆæ˜¯ 8 个字节,你å¯ä»¥çœ‹çœ‹ã€Šæ·±å…?C++ 对象模型》一书,˜q™é‡Œä¸åšå¤šè§£é‡Šã€‚这样函数返回的是分é…内存的起始地å€åQŒè¿™é‡Œå‡è®¾æ˜¯ 0x007da290ã€?/span></p><p><span style="font-size: 14px;">  上é¢åˆ†é…的内存是未åˆå§‹åŒ–的,也是未类型化的,½W¬äºŒæ­¥å°±åœ¨è¿™ä¸€å—原始的内存上对¾cÕd¯¹è±¡è¿›è¡Œåˆå§‹åŒ–åQŒè°ƒç”¨çš„æ˜¯ç›¸åº”的构造函敎ͼŒ˜q™é‡Œæ˜¯è°ƒç”?A:A(10); ˜q™ä¸ªå‡½æ•°åQŒä»Žå›¾ä¸­ä¹Ÿå¯ä»¥çœ‹åˆ°å¯¹˜q™å—甌™¯·çš„内存进行了åˆå§‹åŒ–,var=10, file æŒ‡å‘æ‰“开的文件ã€?/span></p><p><span style="font-size: 14px;">  最åŽä¸€æ­¥å°±æ˜¯è¿”回新分é…òq¶æž„造好的对象的指针åQŒè¿™é‡?pA ž®±æŒ‡å?0x007da290 ˜q™å—内存åQŒpA çš„ç±»åž‹äØ“¾c?A 对象的指针ã€?/span></p><p><span style="font-size: 14px;">  所有这三步åQŒä½ éƒ½å¯ä»¥é€šè¿‡å汇¾~–找到相应的汇编代ç åQŒåœ¨˜q™é‡Œæˆ‘å°±ä¸åˆ—å‡ÞZº†ã€?/span></p><p><span style="font-size: 14px;">  好了åQŒé‚£ä¹?delete 都干了什么呢åQŸè¿˜æ˜¯æŽ¥ç€ä¸Šé¢çš„例å­ï¼Œå¦‚æžœ˜q™æ—¶æƒ³é‡Šæ”¾æŽ‰ç”Œ™¯·çš„类的对象怎么办?当然我们å¯ä»¥ä½¿ç”¨ä¸‹é¢çš„è¯­å¥æ¥å®ŒæˆåQ?/span></p><p><span style="font-size: 14px;">  delete pA;</span></p><p><span style="font-size: 14px;">  delete 所åšçš„事情如下图所½Cºï¼š</span></p><p><span style="font-size: 14px;">  delete ž®±åšäº†ä¸¤ä»¶äº‹æƒ…:</span></p><p><span style="font-size: 14px;">  调用 pA 指å‘å¯¹è±¡çš„æžæž„函敎ͼŒå¯Òމ“开的文件进行关闭ã€?/span></p><p><span style="font-size: 14px;">ã€€ã€€é€šè¿‡ä¸Šé¢æåˆ°çš„æ ‡å‡†åº“å‡½æ•° operator delete æ¥é‡Šæ”¾è¯¥å¯¹è±¡çš„å†…å­˜ï¼Œä¼ å…¥å‡½æ•°çš„å‚æ•îCØ“ pA çš„å€û|¼Œä¹Ÿå°±æ˜?0x007d290ã€?/span></p><p><span style="font-size: 14px;">  好了åQŒè§£é‡Šå®Œäº?new å’?delete èƒŒåŽæ‰€åšçš„äº‹æƒ…äº†ï¼Œæ˜¯ä¸æ˜¯è§‰å¾—也很简å•?ä¸å°±å¤šäº†ä¸€ä¸ªæž„é€ å‡½æ•°å’Œæžæž„函数的调用嘛ã€?/span></p><p><span style="font-size: 14px;">  如何甌™¯·å’Œé‡Šæ”¾ä¸€ä¸ªæ•°¾l„?</span></p><p><span style="font-size: 14px;">  我们¾l常è¦ç”¨åˆ°åЍæ€åˆ†é…一个数¾l„,也许是这æ ïLš„åQ?/span></p><p><span style="font-size: 14px;">  string *psa = new string[10];      //array of 10 empty strings</span></p><p><span style="font-size: 14px;">  int *pia = new int[10];           //array of 10 uninitialized ints</span></p><p><span style="font-size: 14px;">  上é¢åœ¨ç”³è¯·ä¸€ä¸ªæ•°¾l„时都用åˆîCº† new [] ˜q™ä¸ªè¡¨è¾¾å¼æ¥å®ŒæˆåQŒæŒ‰ç…§æˆ‘们上é¢è®²åˆ°çš„ new å’?delete 知识åQŒç¬¬ä¸€ä¸ªæ•°¾l„是 string ¾cÕdž‹åQŒåˆ†é…了ä¿å­˜å¯¹è±¡çš„内存空间之åŽï¼Œž®†è°ƒç”?string ¾cÕdž‹çš„默认构造函æ•îC¾‹Æ¡åˆå§‹åŒ–数组中æ¯ä¸ªå…ƒç´ ï¼›½W¬äºŒä¸ªæ˜¯ç”Œ™¯·å…ähœ‰å†…ç½®¾cÕdž‹çš„æ•°¾l„,分é…了存å‚?10 ä¸?int 对象的内存空é—ß_¼Œä½†åƈ没有åˆå§‹åŒ–ã€?/span></p><p><span style="font-size: 14px;">  如果我们想释攄¡©ºé—´äº†åQŒå¯ä»¥ç”¨ä¸‹é¢ä¸¤æ¡è¯­å¥åQ?/span></p><p><span style="font-size: 14px;">  delete [] psa;</span></p><p><span style="font-size: 14px;">  delete [] pia;</span></p><p><span style="font-size: 14px;">  都用åˆ?delete [] 表达å¼ï¼Œæ³¨æ„˜q™åœ°æ–¹çš„ [] 一般情况下ä¸èƒ½æ¼æŽ‰åQ我们也å¯ä»¥æƒŒ™±¡˜q™ä¸¤ä¸ªè¯­å¥åˆ†åˆ«å¹²äº†ä»€ä¹ˆï¼š½W¬ä¸€ä¸ªå¯¹ 10 ä¸?string å¯¹è±¡åˆ†åˆ«è°ƒç”¨æžæž„函数åQŒç„¶åŽå†é‡Šæ”¾æŽ‰äؓ对象分é…的所有内存空é—ß_¼›½W¬äºŒä¸ªå› ä¸ºæ˜¯å†…ç½®¾cÕdž‹ä¸å­˜åœ¨æžæž„函敎ͼŒç›´æŽ¥é‡Šæ”¾ä¸?10 ä¸?int 型分é…的所有内存空间ã€?/span></p><p><span style="font-size: 14px;">  ˜q™é‡Œå¯¹äºŽ½W¬ä¸€¿U情况就有一个问题了åQšæˆ‘ä»¬å¦‚ä½•çŸ¥é?psa 指å‘对象的数¾l„的大å°åQŸæ€Žä¹ˆçŸ¥é“è°ƒç”¨å‡ æ¬¡æžæž„函数åQ?/span></p><p><span style="font-size: 14px;">  ˜q™ä¸ªé—®é¢˜ç›´æŽ¥å¯ÆD‡´æˆ‘们需è¦åœ¨ new [] 一个对象数¾l„æ—¶åQŒéœ€è¦ä¿å­˜æ•°¾l„çš„¾l´åº¦åQŒC++ çš„åšæ³•æ˜¯åœ¨åˆ†é…æ•°¾l„空间时多分é…了 4 个字节的大å°åQŒä¸“é—¨ä¿å­˜æ•°¾l„的大å°åQŒåœ¨ delete [] æ—¶å°±å¯ä»¥å–出˜q™ä¸ªä¿å­˜çš„æ•°åQŒå°±çŸ¥é“了需è¦è°ƒç”¨æžæž„函数多ž®‘次了ã€?/span></p><p><span style="font-size: 14px;">  ˜q˜æ˜¯ç”¨å›¾æ¥è¯´æ˜Žæ¯”较清楚,我们定义了一个类 AåQŒä½†ä¸å…·ä½“æ˜q°ç±»çš„内容,˜q™ä¸ª¾cÖM¸­æœ‰æ˜¾½Cºçš„æž„é€ å‡½æ•°ã€æžæž„函数等。那ä¹?当我们调ç”?/span></p><p><span style="font-size: 14px;">  class A *pAa = new A[3];</span></p><p><span style="font-size: 14px;">  旉™œ€è¦åšçš„事情如下:</span></p><p><span style="font-size: 14px;">  从这个图中我们å¯ä»¥çœ‹åˆ°ç”³è¯äh—¶åœ¨æ•°¾l„对象的上题q˜å¤šåˆ†é…äº?4 个字节用æ¥ä¿å­˜æ•°¾l„的大å°åQŒä½†æ˜¯æœ€¾lˆè¿”回的是对象数¾l„的指针åQŒè€Œä¸æ˜¯æ‰€æœ‰åˆ†é…空间的起始地å€ã€?/span></p><p><span style="font-size: 14px;">  ˜q™æ ·çš„è¯åQŒé‡Šæ”‘Ö°±å¾ˆç®€å•了åQ?/span></p><p><span style="font-size: 14px;">  delete pAa;</span></p><p><span style="font-size: 14px;">  ˜q™é‡Œè¦æ³¨æ„的两点是:</span></p><p><span style="font-size: 14px;">ã€€ã€€è°ƒç”¨æžæž„函数的次数是从数¾l„对象指针å‰é¢çš„ 4 个字节中å–出åQ?/span></p><p><span style="font-size: 14px;">  传入 operator delete[] å‡½æ•°çš„å‚æ•îC¸æ˜¯æ•°¾l„对象的指针 pAaåQŒè€Œæ˜¯ pAa çš„å€¼å‡ 4ã€?/span></p><p><span style="font-size: 14px;">  ä¸ÞZ»€ä¹?new/delete ã€new []/delete[] è¦é…对ä‹É用?</span></p><p><span style="font-size: 14px;">  其实说了˜q™ä¹ˆå¤šï¼Œ˜q˜æ²¡åˆ°æˆ‘写这½‹‡æ–‡ç« çš„æœ€åŽŸå§‹æ„图。从上é¢è§£é‡Šçš„你应该懂了 new/deleteã€new[]/delete[] 的工作原ç†äº†åQŒå› ä¸ºå®ƒä»¬ä¹‹é—´æœ‰å·®åˆ«åQŒæ‰€ä»¥éœ€è¦é…对ä‹É用。但ååé—®é¢˜ä¸æ˜¯˜q™ä¹ˆ½Ž€å•,˜q™ä¹Ÿæ˜¯æˆ‘é‡åˆ°çš„问题,如下˜q™æ®µä»£ç åQ?/span></p><p><span style="font-size: 14px;">  int *pia = new int[10];</span></p><p><span style="font-size: 14px;">  delete []pia;</span></p><p><span style="font-size: 14px;">  ˜q™è‚¯å®šæ˜¯æ²¡é—®é¢˜çš„åQŒä½†å¦‚æžœæŠ?delete []pia; æ¢æˆ delete pia; çš„è¯åQŒä¼šå‡ºé—®é¢˜å—åQ?/span></p><p><span style="font-size: 14px;">  ˜q™å°±æ¶‰åŠåˆîC¸Šé¢ä¸€èŠ‚æ²¡æåˆ°çš„é—®é¢˜äº†ã€‚ä¸Šé¢æˆ‘æåˆ°äº†åœ¨ new [] æ—¶å¤šåˆ†é… 4 个字节的¾~˜ç”±åQŒå› ä¸ºæžæž„时需è¦çŸ¥é“æ•°¾l„的大å°åQŒä½†å¦‚æžœä¸è°ƒç”¨æžæž„函数呢åQˆå¦‚内置¾cÕdž‹åQŒè¿™é‡Œçš„ int 数组åQ‰ï¼Ÿæˆ‘们åœ?new [] 时就没必è¦å¤šåˆ†é…é‚?4 个字节, delete [] 时直接到½W¬äºŒæ­¥é‡Šæ”¾äØ“ int 数组分é…的空间。如果这里ä‹Éç”?delete pia;那么ž®†ä¼šè°ƒç”¨ operator delete 函数åQŒä¼ å…¥çš„傿•°æ˜¯åˆ†é…给数组的è“v始地å€åQŒæ‰€åšçš„事情ž®±æ˜¯é‡Šæ”¾æŽ‰è¿™å—内存空间。ä¸å­˜åœ¨é—®é¢˜çš„ã€?/span></p><p><span style="font-size: 14px;">  ˜q™é‡Œè¯´çš„使用 new [] ç”?delete æ¥é‡Šæ”‘Ö¯¹è±¡çš„æå‰æ˜¯ï¼šå¯¹è±¡çš„类型是内置¾cÕdž‹æˆ–è€…æ˜¯æ— è‡ªå®šä¹‰çš„æžæž„函数的¾cȱ»åž‹ï¼</span></p><p><span style="font-size: 14px;">ã€€ã€€æˆ‘ä»¬çœ‹çœ‹å¦‚æžœæ˜¯å¸¦æœ‰è‡ªå®šä¹‰æžæž„函数的类¾cÕdž‹åQŒç”¨ new [] æ¥åˆ›å»ºç±»å¯¹è±¡æ•°ç»„åQŒè€Œç”¨ delete æ¥é‡Šæ”¾ä¼šå‘生什么?用上é¢çš„例孿¥è¯´æ˜Žï¼š</span></p><p><span style="font-size: 14px;">  class A *pAa = new class A[3];</span></p><p><span style="font-size: 14px;">  delete pAa;</span></p><p><span style="font-size: 14px;">  那么 delete pAa; åšäº†ä¸¤äšg事:</span></p><p><span style="font-size: 14px;">  调用一‹Æ?pAa 指å‘çš„å¯¹è±¡çš„æžæž„函数åQ?/span></p><p><span style="font-size: 14px;">  调用 operator delete(pAa); 释放内存ã€?/span></p><p><span style="font-size: 14px;">  昄¡„¶åQŒè¿™é‡Œåªå¯ÒŽ•°¾l„çš„½W¬ä¸€ä¸ªç±»å¯¹è±¡è°ƒç”¨äº†æžæž„函敎ͼŒåŽé¢çš„ä¸¤ä¸ªå¯¹è±¡å‡æ²¡è°ƒç”¨æžæž„函敎ͼŒå¦‚æžœ¾cÕd¯¹è±¡ä¸­ç”Œ™¯·äº†å¤§é‡çš„内存需è¦åœ¨æžæž„函数中释放,而你å´åœ¨é”€æ¯æ•°¾l„对象时ž®‘è°ƒç”¨äº†æžæž„函数åQŒè¿™ä¼šé€ æˆå†…存泄æ¼ã€?/span></p><p><span style="font-size: 14px;">  上é¢çš„问题你如果说没关系的è¯åQŒé‚£ä¹ˆç¬¬äºŒç‚¹ž®±æ˜¯è‡´å‘½çš„了åQ直接释æ”?pAa 指å‘的内存空é—ß_¼Œ˜q™ä¸ªæ€ÀL˜¯ä¼šé€ æˆä¸¥é‡çš„æ®µé”™è¯¯åQŒç¨‹åºå¿…然会奔溃åQ因为分é…çš„½Iºé—´çš„è“vå§‹åœ°å€æ˜?pAa 指å‘的地方å‡åŽ?4 ä¸ªå­—èŠ‚çš„åœ°æ–¹ã€‚ä½ åº”è¯¥ä¼ å…¥å‚æ•°è®¾äؓ那个地å€åQ?/span></p><p><br/></p></div> </div> </div> </div> <div class="clear"></div> <div class="foot"> <div class="foot_menu"> <ul> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">å¼€å‘优åŠ?/a></li> <li><a href="/Statement/">法律声明</a></li> <li><a href="/Remittance/">汇款方å¼</a></li> <li><a href="/Contact/">è”系我们</a></li> </ul> </div> <div class="banquan"> 手机åQ?8678812288 EåQMail:1069706080@qq.com<br /> 地å€åQšå±±ä¸œçœ‹¹Žå—市舜耕èµ\泉城公园东门园内å‘北50¾c? é²ICPå¤?7011972å? ç‰ˆæƒæ‰€æœ?008åQ?013 å±×ƒ¸œèµ¢å¯d信毿U‘技有é™å…¬å¸<script type="text/javascript"> var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); document.write(unescape("%3Cscript src='" + _bdhmProtocol + "#/h.js%3F5fbc066dba9928a1e914c338c6945c98' type='text/javascript'%3E%3C/script%3E")); </script> </div> </div> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <a href="http://www.themmauniversity.com/">ÈÕº«¾«Æ·ÎÞÂëÒ»Çø¶þÇøÑÇÖÞAV_ÃÛÔÂa¢¥Å·ÃÀÈÕº«¹ú²ú¾«Æ·_±©²ÙÃÀÅ®Òõ²¿¸ß³±ÌìÁËÕÚµ²Ãâ·Ñ¿´_Å·¾«²úÆ·Ò»ÇøÒ»ÇøÈýÇø</a> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body> </html>