堆内存数组操作问题?

huyiwatching 2007-05-08 06:46:01
我用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;
}
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiwei2007 2007-05-08
  • 打赏
  • 举报
回复
没有结束标志
jixingzhong 2007-05-08
  • 打赏
  • 举报
回复
strcat(c,d); //这里就操作非法内存空间
printf("the string is %s\n", c);
jixingzhong 2007-05-08
  • 打赏
  • 举报
回复
char* c=new char[7];

空间不足
lightnut 2007-05-08
  • 打赏
  • 举报
回复
char* c=new char[6];
===>
char* c=new char[7];

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧