首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

堆内存数组操作有关问题

2012-03-04 
堆内存数组操作问题?我用Wizard创建了一个支持MFC的Win32ConsoleApplication,程序代码如下:CWinApptheApp

堆内存数组操作问题?
我用Wizard创建了一个支持MFC的Win32   Console   Application,程序代码如下:CWinApp   theApp;

using   namespace   std;

int   _tmain(int   argc,   TCHAR*   argv[],   TCHAR*   envp[])
{
int   nRetCode   =   0;

//   initialize   MFC   and   print   and   error   on   failure
                  if   (!AfxWinInit(::GetModuleHandle(NULL),   NULL,   ::GetCommandLine(),   0))
{
//   TODO:   change   error   code   to   suit   your   needs
cerr   < <   _T( "Fatal   Error:   MFC   initialization   failed ")   < <   endl;
nRetCode   =   1;
}
else
{
//   TODO:   code   your   application 's   behavior   here.
char*   c=new   char[6];
strcpy(c,(const   char*) "111 ");
char*   d   =   "sss ";
strcat(c,d);
printf( "the   string   is   %s\n ",   c);
delete   []c;     //   程序运行到这里crash,为什么?
c   =   NULL;
}
return   nRetCode;
}

[解决办法]
char* c=new char[6];
===>
char* c=new char[7];


[解决办法]
char* c=new char[7];

空间不足
[解决办法]
strcat(c,d); //这里就操作非法内存空间
printf( "the string is %s\n ", c);
[解决办法]
没有结束标志

热点排行