Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¹ØÓÚdelete C/C++ Ö¸Õë

Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»ØÊ±£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆÎª¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊøÖ®Ç°²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2. 
new ½øÐÐ×ÔÓÉ´æ´¢ÇøÖÐÄÚ´æ·ÖÅä¡£
Èç¹û new ²»ÄÜÔÚ×ÔÓÉ´æ´¢ÇøÖд´½¨Äڴ棬Ôò»á·µ»Ø NULLÖ¸Õ롣ÿ´Î·ÖÅäÐÂÄÚ´æÊ±Ò»¶¨Òª¼ì²éÖ¸ÕëÊÇ·ñΪ null.
delete ²Ù×÷ʵ¼ÊÉÏÊǻָ´Ö¸ÕëËùÖ¸µÄÄڴ棬ʹ֮¿ÉÒÔÔÙÓ㬶ø²»ÖÁÓÚÔì³ÉÄÚ´æÐ¹Â©(memory leak).
¶øÖ¸ÕëÈÔÈ»ÊÇÖ¸Õ룬±ØÒªÊ±»¹¿ÉÒÔÖØÐ¸³Öµ¡£
Èç¹û¶ÔÒѾ­ÊͷŹýµÄÖ¸Õëµ÷Óà delete ²Ù×÷£¬»áµ¼Ö³ÌÐò±ÀÀ£¡£µ±É¾³ýÖ¸Õëʱ£¬¸øÖ¸Õ븳ֵ NULL(0), ¶Ô¿ÕÖ¸Õëµ÷Óà delete Êǰ²È«µÄ¡£
ÄÚ´æÐ¹Â©£ºÒ»ÖÖÇé¿öÊdzÌÐòÔÚδÊÍ·ÅËüÖ¸ÏòµÄÄÚ´æÖ®Ç°¾Í¸øÖ¸ÕëÖØÐ¸³Öµ¡£
µ±³ÌÐò¶Ô×ÔÓÉ´æ´¢ÇøÖеĶÔÏóÖ¸Õëµ÷Óà delete ʱ£¬ÔÚÊÍ·ÅÄÚ´æÖ®Ç°»á×Ô¶¯µ÷ÓöÔÏóµÄÎö¹¹º¯Êý¡£Õâ¸ö²ßÂÔ¸øÀàÌṩÁËÇåÀíµÄ»ú»á¡£
3.
¶ÔÓÚSymbianÓ¦ÓóÌÐò£¬Èç¹ûÏÈdeleteÁËÒ»¸öÖ¸ÕëÖ¸ÏòµÄÄڴ棬µ«Ã»ÓаÑÕâ¸öÖ¸Õ븳ֵΪNULL£¬È»ºóÔÚij´¦·¢ÉúÁËLeave, Çå³ýÕ»µ¯³öÖ¸Õë²¢ÔÙ´ÎdeleteÕâ¶ÎÄڴ棬Õâ¾ÍÔì³ÉÁ˶à´ÎdeleteÒ»¶ÎÄڴ棬µ±µÚ¶þ´ÎdeleteÕâ¶ÎÄÚ´æÊ±£¬Ó¦ÓóÌÐò»áCrash£¨³ÌÐòÖÕÖ¹£©£¬Crash Ô­Òò¿ÉÄÜÊÇ£ºÕâ¶ÎÄÚ´æÒѾ­·ÖÅä×÷ΪÆäËüÓô¦£¬É¾³ýÕâ¶Î»¹ÐèÒªÓõÄÄÚ´æ¿Õ¼ä£¬´Ó¶øµ¼ÖÂCrash¡£


Ïà¹ØÎĵµ£º

wince±³¹âµ÷½Ú VC´úÂëcÎļþ

// backlightDlg.cpp : implementation file
//
#include "stdafx.h"
#include "backlight.h"
#include "backlightDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CbacklightDlg dialog
CbacklightDlg::CbacklightDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CbacklightDlg::IDD, pParent)
{
  ......

̽Ë÷C++µÄÃØÃÜÖ®Ïê½âextern C

ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë: PnQ
PnQ
#ifdef __cplusplus PnQ
extern "C" { PnQ
#endif PnQ
PnQ
//Ò»¶Î´úÂë PnQ
PnQ
#ifdef __cplusplus PnQ
} PnQ
#endif PnQ
¡¡¡¡ÕâÑùµÄ´úÂëµ½µ×ÊÇʲôÒâË¼ÄØ£¿Ê×ÏÈ£¬__cplusplusÊÇcppÖеÄ×Ô¶¨Òåºê£¬ÄÇô¶¨ÒåÁËÕâ¸öºêµÄ»°±íʾÕâÊÇÒ»¶ÎcppµÄ´úÂ룬Ҳ¾ÍÊÇ˵£¬ÉÏÃæµÄ´úÂëµ ......

Cº¯Êý·µ»Ø½á¹¹ÌåÔÚ»ã±àϵÄʵÏÖ

Ô­ÎÄÁ´½Ó£ºhttp://blog.csdn.net/sytstarac/archive/2009/08/05/4411519.aspx
±àÒëÆ÷£ºvc++6.0(ÒòΪ´ËÖÖʵÏÖÒÀÀµ±àÒëÆ÷´¦Àí)
´Ë´¦Ö»¼òÒªÐðÊöһϻúÖÆ¡£²¢¸½²¿·Ö¹Ø¼üÖ¸ÁîÐòÁС£
×¼±¸£º
1£¬¹ØÓÚEBP£º³Æ×öÕ»»ùÖ·Ö¸Õ롣ΪʲôÕâÑùËµÄØ£¿ÎÒÃÇÏÈÀ´¿´¿´º¯Êýµ÷ÓõĹý³Ì£º
²ÎÊý´ÓÓÒµ½×óѹջ¡£
callÖ¸ÁîÖ´ÐУ¬¸ÃÖ¸Áµ¼ÖÂEIPѹ ......

cѧϰµÚÒ»Ìì

n Óñêʶ·û´ú±íÒ»¸ö³£Á¿£¬³ÆÎª·ûºÅ³£Á¿¡£ n ·ûºÅ³£Á¿Óë±äÁ¿²»Í¬£¬ËüµÄÖµÔÚÆä×÷ÓÃÓòÄÚ²»Äܸı䣬Ҳ²»ÄÜÔÙ±»¸³Öµ¡£ n ʹÓ÷ûºÅ³£Á¿µÄºÃ´¦ÊÇ£º Ø º¬ÒåÇå³þ£» Ø ÄÜ×öµ½¡°Ò»¸ÄÈ«¸Ä¡±¡£ --»°Ëµ£º²»ÖªµÀcÀïÃæÓÐûÓÐÈ«¾Ö±äÁ¿µÄ¶«¶«£¬Óеϰ£¬ÕâÁ½¸öµÄʵ¼ÊÓô¦ÓÐɶ×ÓÇø±ðÄØ£¿¿´¿´ÔÙ˵ Êý¾Ý½á¹¹+Ëã·¨=³ÌÐò ÖÕÓÚÖªµÀÕâ ......

c¾­µäÁ´±í³ÌÐò

#include "stdio.h"
#include "malloc.h"
typedef int elemtype;
struct node
{
elemtype data;
struct node *next;
};
typedef struct node NODE;
NODE * creat(NODE *head)
{
NODE *p,*q;
elemtype i;
head=(NODE*)malloc(sizeof(NODE));
scanf("%d",&(head->data));
p=head;
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ