±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 969  |  »Ø¸´: 11
±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

½­ºþС°×Éú

гæ (³õÈëÎÄ̳)

[ÇóÖú] C++ÇóÖú

#include
#include
using namespace std;
char *getname(void);
int main()
{
  char *name;
  name=getname();
  cout<   delete[] name;
  name=getname();
  cout<   delete[]name;
  return 0;
}
char *getname()
{
char temp[80];
cout<<"enter the name:";
cin>>temp;
char *pn=new char(strlen(temp)+1);
strcpy(pn,temp);
return pn;
}
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

½­ºþС°×Éú

гæ (³õÈëÎÄ̳)

ÔËÐнá¹ûÊÇÕâÑù



2Â¥2011-11-04 11:10:10
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ioadong

ľ³æ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï
xzhdty(½ð±Ò+1): »¶Ó­³£À´³ÌÐòÓïÑÔÌÖÂÛ 2011-11-04 22:25:58
char *getname()
{
char temp[80];
cout<<"enter the name:";
cin>>temp;
char *pn=new char(strlen(temp)+1);//ÕâÀï·ÖÅäÁ˾ֲ¿Ö¸Õë
strcpy(pn,temp);
return pn;//ÕâÀï·µ»ØÕâ¸öÖ¸Õ룬µ«ÊÇÔÚº¯Êý·µ»Øºó£¬Õâ¸ö±äÁ¿µÄÉúÃüÆÚÒѾ­½áÊøÁË¡£
}

Õâ¸öº¯Êý·µ»ØÁËÔÚ¶ÑÖзÖÅäµÄÁÙʱָÕëpn¡£Â¥Ö÷ºÃºÃ¿´¿´½Ì²ÄÉϹØÓÚÖ¸ÕëÓ÷¨µÄ×¢Òâµã°É¡£
ÒÔ¿ÆÑ§µÄÀíÐÔ´úÌæÌìÈ»µÄ·ÇÀíÐÔ¡£
3Â¥2011-11-04 14:58:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
3Â¥: Originally posted by ioadong at 2011-11-04 14:58:23:
char *getname()
{
char temp[80];
cout<<"enter the name:";
cin>>temp;
char *pn=new char(strlen(temp)+1);//ÕâÀï·ÖÅäÁ˾ֲ¿Ö¸Õë
strcpy(pn,temp);
return pn;//ÕâÀï·µ»ØÕâ¸öÖ¸Õë ...

Õâ¸ö½âÊÍÊDz»¶ÔµÄ~Äã¸ã»ìÁËÕ»ºÍ¶Ñ
4Â¥2011-11-04 15:37:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï
xzhdty(½ð±Ò+1): лл²ÎÓë 2011-11-04 22:26:38
ÎÊÌâÔÚÓÚ
CODE:
char *pn=new char(strlen(temp)+1);

Ó¦¸ÃÊÇ
CODE:
char *pn=new char[strlen(temp)+1];

ÕâÁ½ÖÖд·¨£¬µÚ¶þÖÖ²ÅÊÇÉêÇëÒ»¶ÎÄÚ´æ¡£µÚÒ»¸ö½ö½öÉêÇëÁËÒ»¸öcharµÄÄڴ棬ȻºóÄÚÈݳõʼ»¯Îªstrlen(temp)+1µÄÖµ¶øÒÑ¡£
5Â¥2011-11-04 15:39:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ioadong

ľ³æ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

ÒýÓûØÌû:
4Â¥: Originally posted by sudo at 2011-11-04 15:37:29:
Õâ¸ö½âÊÍÊDz»¶ÔµÄ~Äã¸ã»ìÁËÕ»ºÍ¶Ñ

ÄãÔÙ¿´¿´ÄǸö´íÎóÌáʾ¿òÖеÄÄÚÈÝ¡£ÇåÇå³þ³þµÄ"heap buffer"
Äã˵µÄÊÇÁíÍâÒ»¸öÎÊÌ⣬¼´Ö¸ÕëÔ½½çµÄÎÊÌ⣬µ«Õâ²»ÊdzöÏÖͼÖдíÎó¶Ô»°¿òµÄÔ­Òò¡£
ÎÒÌØµØ¸´Ï°ÁËһϣ¬new·ÖÅäµÄ±äÁ¿Ò»°ã¶¼ÊÇÔڶѿռäµÄ¡£
ÒÔ¿ÆÑ§µÄÀíÐÔ´úÌæÌìÈ»µÄ·ÇÀíÐÔ¡£
6Â¥2011-11-04 16:32:57
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡ï
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë 2011-11-04 23:41:44
ÒýÓûØÌû:
6Â¥: Originally posted by ioadong at 2011-11-04 16:32:57:
ÄãÔÙ¿´¿´ÄǸö´íÎóÌáʾ¿òÖеÄÄÚÈÝ¡£ÇåÇå³þ³þµÄ"heap buffer"
Äã˵µÄÊÇÁíÍâÒ»¸öÎÊÌ⣬¼´Ö¸ÕëÔ½½çµÄÎÊÌ⣬µ«Õâ²»ÊdzöÏÖͼÖдíÎó¶Ô»°¿òµÄÔ­Òò¡£
ÎÒÌØµØ¸´Ï°ÁËһϣ¬new·ÖÅäµÄ±äÁ¿Ò»°ã¶¼ÊÇÔڶѿռäµÄ¡£

the application wrote to memory after end of heap buffer.
¾ÍÊÇдԽ½çÁË

¸Õ²Å˵µÄÄã»ìÏýÁ˶ѺÍÕ»£¬ËµµÄÊÇÓйء°ÉúÃüÆÚ¡±µÄÀí½âµÄÎÊÌâ¡£
char *getname()
{
char temp[80];
cout<<"enter the name:";
cin>>temp;
char *pn=new char(strlen(temp)+1);//ÕâÀï·ÖÅäÁ˾ֲ¿Ö¸Õë
//ËäÈ»pnÊǾֲ¿Ö¸Õ룬µ«ÊǶÔÓÚ¶ÑÀïÃæµÄÄڴ棬Èç¹û²»deleteµô»òÕß½ø³Ì½áÊø£¬½«Ò»Ö±´¦ÓÚ¡°ÓÐÉúÃü¡±µÄ״̬
strcpy(pn,temp);
return pn;//ÕâÀï·µ»ØÕâ¸öÖ¸Õ룬µ«ÊÇÔÚº¯Êý·µ»Øºó£¬Õâ¸ö±äÁ¿µÄÉúÃüÆÚÒѾ­½áÊøÁË¡£
//àÅ£¬ËäÈ»pnµÄÉúÃüÆÚȷʵÒѾ­½áÊø£¬µ«ÊÇ£¬ËüµÄÖµÖ¸ÏòµÄÄÚ´æ¿éµÄÉúÃüÆÚ»¹ÔÚ
}
7Â¥2011-11-04 17:04:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï
ÓàÔó³É(½ð±Ò+2, ³ÌÐòÇ¿Ìû+1): лл²ÎÓëÓ¦Öú£¡ 2011-11-10 21:44:28
ÒýÓûØÌû:
6Â¥: Originally posted by ioadong at 2011-11-04 16:32:57:
ÄãÔÙ¿´¿´ÄǸö´íÎóÌáʾ¿òÖеÄÄÚÈÝ¡£ÇåÇå³þ³þµÄ"heap buffer"
Äã˵µÄÊÇÁíÍâÒ»¸öÎÊÌ⣬¼´Ö¸ÕëÔ½½çµÄÎÊÌ⣬µ«Õâ²»ÊdzöÏÖͼÖдíÎó¶Ô»°¿òµÄÔ­Òò¡£
ÎÒÌØµØ¸´Ï°ÁËһϣ¬new·ÖÅäµÄ±äÁ¿Ò»°ã¶¼ÊÇÔڶѿռäµÄ¡£

ÔÙÀ´¿´¿´Õâ¸öÎÊÌâÊÇÔõô²úÉúµÄ£¬VCÔÚdebugģʽϽøÐбàÒëµÄʱºò£¬Ê¹ÓõÄdelete»áµ÷ÓÃcrt\src\dbgheap.cÀïÃæµÄÕâ¸öº¯Êý£º
CODE:
/***
*int _CrtCheckMemory() - check heap integrity
*
*Purpose:
*       Confirm integrity of debug heap. Call _heapchk to validate underlying
*       heap.
*
*Entry:
*       void
*
*Return:
*       TRUE - if debug and underlying heap appear valid
*       FALSE otherwise
*
*******************************************************************************/
extern "C" _CRTIMP int __cdecl _CrtCheckMemory(void);

È»ºó£¬»áÔÚdeleteµÄʱºò£¬¶Ô¶Ñ½øÐÐÒ»¸öÏêϸµÄ¼ì²é£¬ÆäÖÐÓÐÒ»¶ÎÊÇÕâÑùµÄ£º
CODE:
if (!CheckBytes(pbData(pHead) + pHead->nDataSize, _bNoMansLandFill,
                nNoMansLandSize))
                {
                    if (pHead->szFileName)
                    {
                        _RPT5(_CRT_WARN, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
                            "CRT detected that the application wrote to memory after end of heap buffer.\n"
                            _ALLOCATION_FILE_LINENUM,
                            blockUse,
                            pHead->lRequest,
                            (BYTE *) pbData(pHead),
                            pHead->szFileName,
                            pHead->nLine);
                    }
                    else
                    {
                        _RPT3(_CRT_WARN, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
                            "CRT detected that the application wrote to memory after end of heap buffer.\n",
                            blockUse, pHead->lRequest, (BYTE *) pbData(pHead));
                    }
                    okay = FALSE;
                }

ËüʹÓÃCheckBytes·¢ÏÖÁËдÔÚÁËÉêÇëµ½µÄ¶ÑÄÚ´æ¿Õ¼ä·¶Î§µÄºóÃæ£¬È»ºó¾Í¸ø³ÌÐòÔ±±¨Á˸ö_CRT_WARN¡£

ÒÔÉÏ~
8Â¥2011-11-04 17:08:52
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1): ¹ÄÀø½»Á÷£¡ 2011-11-10 21:44:39
àŽè´Ë»ú»áÁ˽âһϲ»Í¬±àÒëÆ÷ÔÚdebugÏ£¬±àÒë³ÌÐòʱ¼ÓÈëµÄһЩ¼ì²éÊÖ·¨Ò²´óÓÐñÔÒæ~

²»Í¬±àÒëÆ÷µÄ×ö·¨ÊDz»Í¬µÄŶ¡£±ÈÈçg++µÄ»°£¬Â¥Ö÷¿ÉÄܻᷢÏÖûÓÐʲô±¨´íÖ®ÀàµÄ£¬µ«ÊÇÕâÒ²²»ÄÜ˵Ã÷³ÌÐòÊÇÕýÈ·µÄ¡£

-.<×ÜÖ®»¹Êǽ¨Ò鲻Ҫ̫½ÌÌõÖ÷Ò壨ÕâÀï²»ÊÇ·ñ¶¨±ê×¼µÄÖØÒªÐÔ£©£¬Ñ§»áʹÓõ÷ÊÔ¹¤¾ßÊǺÜÓбØÒªµÄ
9Â¥2011-11-04 17:15:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

¡ï
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë 2011-11-04 23:41:58
ÔÙ†ªàÂһϹý³Ì°É£º

дԽ½ç·¢ÉúÔÚstrcpy£¬È»ºó·¢ÏÖµÄʱ¼äÊÇÔÚdeleteµ÷ÓÃ_CrtCheckMemoryºó~
10Â¥2011-11-04 17:20:01
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ½­ºþС°×Éú µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁϹ¤³Ì085601£¬Çóµ÷¼Á +11 cdyw 2026-04-02 11/550 2026-04-02 23:06 by Âí¶ù¿ì¿ìµØÅÜ
[¿¼ÑÐ] 081200-11408-276ѧ˶Çóµ÷¼Á +5 ´Þwj 2026-04-02 5/250 2026-04-02 22:54 by pphmily
[¿¼ÑÐ] 372·Ö²ÄÁÏÓ뻯¹¤£¨085600£©Ò»Ö¾Ô¸ºþÄÏ´óѧÇóµ÷¼Á +5 À¶¼ãƬ 2026-04-02 6/300 2026-04-02 21:37 by dongzh2009
[¿¼ÑÐ] һ־Ըɽ¶«´óѧ£¬085600£¬344 +7 κ×Óper 2026-04-02 8/400 2026-04-02 21:12 by °ÙÁéͯ888
[¿¼ÑÐ] µ÷¼ÁÇóÖú +8 Ïë»»ÊÖ»ú²»Ïë½âÊ 2026-04-02 8/400 2026-04-02 20:47 by dongzh2009
[¿¼ÑÐ] 070300»¯Ñ§Çóµ÷¼Á +8 Æð¸öÃûÕ¦ÕâôÄÑ 2026-03-27 9/450 2026-04-02 20:42 by dongzh2009
[¿¼ÑÐ] 336Çóµ÷¼Á +6 kiyy 2026-04-01 6/300 2026-04-02 15:51 by Jaylen.
[¿¼ÑÐ] 348Çóµ÷¼Á +6 ÎâÑå׿24k 2026-04-02 6/300 2026-04-02 14:07 by ¸øÄãÄã×¢ÒâÐÝÏ¢
[¿¼ÑÐ] ÄÜÔ´¶¯Á¦ µ÷¼Á +3 ²»ÆÆ²»Á¢0 2026-04-02 3/150 2026-04-02 12:46 by ffffjjjj
[¿¼ÑÐ] Çóµ÷¼ÁÍÆ¼ö +3 ÄÏɽÄÏ@ 2026-04-01 3/150 2026-04-02 12:09 by xiaoranmu
[¿¼ÑÐ] 271Çóµ÷¼Á +15 ÀÕ²¼ÀÊ@ 2026-03-31 20/1000 2026-04-02 11:24 by Sammy2
[¿¼ÑÐ] Çóµ÷¼Á£¬Ò»Ö¾Ô¸ÄϾ©Ê¦·¶´óѧ¼ÆËã»úר˶£¬³õÊÔ373£¬Áù¼¶Í¨¹ý£¬ +3 ¼ÆËã»ú×·ÃÎÈË 2026-04-01 3/150 2026-04-02 07:57 by fxue1114
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +11 Ò»ÑùYWY 2026-03-31 11/550 2026-04-01 22:25 by zhouyuwinner
[¿¼ÑÐ] ²ÄÁÏר˶306Ó¢Ò»Êý¶þ +7 z1z2z3879 2026-03-31 7/350 2026-04-01 14:50 by ZXlzxl0425
[¿¼ÑÐ] 301Çóµ÷¼Á +8 axibli 2026-04-01 8/400 2026-04-01 09:51 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí²ÄÁϹ¤³Ì302µ÷¼Á»·»¯»ò»¯¹¤ +15 Doleres 2026-03-31 16/800 2026-04-01 09:49 by lfj11
[»ù½ðÉêÇë] ÃæÉÏ5BÄÜÉÏ»áÂ𣿠+8 redcom 2026-03-29 8/400 2026-03-31 15:53 by niuailing
[¿¼ÑÐ] 266Çóµ÷¼Á +3 ÍÛºôºßºôºß 2026-03-29 3/150 2026-03-31 10:06 by cal0306
[¿¼ÑÐ] Çóµ÷¼Á +10 ¼Ò¼Ñ¼Ñ¼Ñ¼Ñ¼Ñ 2026-03-29 10/500 2026-03-30 18:34 by 544594351
[¿¼ÑÐ] 085600£¬×¨Òµ¿Î»¯¹¤Ô­Àí£¬321·ÖÇóµ÷¼Á +5 ´ó²öС×Ó 2026-03-28 5/250 2026-03-29 08:56 by qingfeng258
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û