C++程序运行问题,debug时程序会停止运行,release时正常,想请教各位大神为什么会出现这样的问题

#include<iostream>usingnamespacestd;//实现string类的动态联编intmain(){char*getstring();char*s... #include<iostream>
using namespace std;
//实现string类的动态联编
int main()
{
char * getstring();
char * string;

string = getstring();

cout << string;

return 0;
}
char * getstring()
{
char temp[80];
scanf_s("%s",temp);
char * p = new char[strlen(temp)+1];
strcpy_s(p,80,temp);
return p;
}
//一般不是debug正常release会出现问题吗,这个程序是什么原因导致的呢,编译器vs2012update4
展开
 我来答
孤舟嗦蛎翁
2015-03-07 · 超过21用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:36.6万
展开全部
分配的char数组 是在栈上分配的,getString结束,,该内存回收,,返回的指针*p指向该回收的内存。。
更多追问追答
追问
那为什么release版本可以正常运行,能讲得细致一点吗?这边小白一只
追答
虽然说是 回收,,其实这片内存保存的还是 你的string数据, 系统并没有立即 真正的回收。。只是程序中不该这么用了而已,,因为系统早晚会用这片内存,,   建议使用malloc方法 申请内存
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式