²é¿´: 960  |  »Ø¸´: 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µÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ½­ºþС°×Éú µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ÌåÖÆÄÚ³¤±²ËµÌåÖÆÄÚ¾ø´ó²¿·ÖÒ»±²×ÓÔڵײ㣬ÈçͬÄãÃÇÒ»Ñù´ó²¿·ÖÆÕͨ½ÌʦæÇÒÊÕÈëµÍ +10 ˲ϢÓîÖæ 2026-02-20 13/650 2026-02-23 11:23 by holypower
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 8rmuugja8q 2026-02-22 7/350 2026-02-23 09:44 by w4l55oybr1
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 8/400 2026-02-23 09:35 by w4l55oybr1
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 usprnugpzw 2026-02-21 11/550 2026-02-23 09:24 by w4l55oybr1
[½Ìʦ֮¼Ò] ΪʲôÖйú´óѧ¹¤¿Æ½ÌÊÚÃÇË®ÁËÄÇô¶àËùνµÄ¶¥»á¶¥¿¯£¬µ«»¹ÊÇ×ö²»³öÓîÊ÷»úÆ÷ÈË£¿ +5 »¶ÀÖËÌÒ¶Ýè 2026-02-21 8/400 2026-02-23 09:19 by »¶ÀÖËÌÒ¶Ýè
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 w89i99eaeh 2026-02-22 5/250 2026-02-23 08:04 by w4l55oybr1
[²©ºóÖ®¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +6 3dfhjxgsh7 2026-02-22 9/450 2026-02-23 07:49 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 4/200 2026-02-23 06:46 by jsjzfl
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 5/250 2026-02-23 06:29 by w4l55oybr1
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 8/400 2026-02-23 06:24 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 3dfhjxgsh7 2026-02-22 6/300 2026-02-23 02:04 by 5jlh3qtdvx
[½Ìʦ֮¼Ò] °æÃæ·Ñ¸Ã½»Âð +7 Æ»¹ûÔÚÄÄÀï 2026-02-22 8/400 2026-02-22 22:37 by otani
[»ù½ðÉêÇë] ÃæÉÏ¿ÉÒÔ³¬¹ý30Ò³°É£¿ +4 °¢À­¹±aragon 2026-02-22 4/200 2026-02-22 21:22 by ɽÎ÷Ðü¿ÕË¿ÕÐüÎ
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 usprnugpzw 2026-02-21 6/300 2026-02-22 19:48 by w89i99eaeh
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 3dfhjxgsh7 2026-02-22 4/200 2026-02-22 16:52 by khieu8v8m0
[ÕÒ¹¤×÷] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 usprnugpzw 2026-02-22 3/150 2026-02-22 16:37 by khieu8v8m0
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 usprnugpzw 2026-02-21 4/200 2026-02-22 16:27 by khieu8v8m0
[»ù½ðÉêÇë] ¡°ÈËÎÄÉç¿Æ¶øÂÛ£¬Ðí¶àѧÊõÑо¿»¹Ã»ÓдﵽÃñ¹úʱÆÚµÄˮƽ¡± +4 ËÕ¶«ÆÂ¶þÊÀ 2026-02-18 5/250 2026-02-22 16:07 by liangep1573
[»ù½ðÉêÇë] ʲôÊÇÈËÒ»Éú×îÖØÒªµÄ£¿ +4 ˲ϢÓîÖæ 2026-02-21 4/200 2026-02-22 11:44 by huagongfeihu
[»ù½ðÉêÇë] ½ñÄê´ºÍíÓм¸¸ö½ÚÄ¿ºÜ²»´í£¬µãÔÞ£¡ +11 ˲ϢÓîÖæ 2026-02-16 12/600 2026-02-21 21:14 by lq493392203
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û