win8.1 下 VS2013编译C++代码时崩溃
解决时间 2021-03-03 22:55
- 提问者网友:玫瑰园
- 2021-03-03 12:14
code:
//delete.cpp -- using the delete operator
#include
#include
using namespace std;
char* getname(void); //function prototype
int main()
{
char* name; //create pointer but no storage
name = getname(); //assign address of string to name
cout << name << " at " << (int*)name << "\n";
delete[] name; //memory free
name = getname(); //reuse freed memory
cout << name << " at " << (int*)name << "\n";
delete[] name; //memory freed again
return 0;
}
char*getname() //return pointer to new string
{
char temp[80]; //temporary storage
cout << "Enter last name:";
cin >> temp;
char*pn = new char[strlen(temp) + 1];
strcpy_s(pn,81, temp); //copy string into smaller space
return 0;
}
Crash info:
问题事件名称:APPCRASH
应用程序名称:Learning.exe
应用程序版本:0.0.0.0
应用程序时间戳:538c95ef
异常代码:c0000005
异常偏移:000019d7
最佳答案
- 五星知识达人网友:酒安江南
- 2021-03-03 12:45
//delete.cpp -- using the delete operator
#include
#include
using namespace std;
char* getname(void); //function prototype
int main()
{
char* name; //create pointer but no storage
name = getname(); //assign address of string to name
cout << name << " at " << (int*)name << "\n";
delete[] name; //memory free
name = getname(); //reuse freed memory
cout << name << " at " << (int*)name << "\n";
delete[] name; //memory freed again
return 0;
}
char*getname() //return pointer to new string
{
char temp[80]; //temporary storage
cout << "Enter last name:";
cin >> temp;
char*pn = new char[strlen(temp) + 1];
// 这里应该只拷贝 strlen(temp) + 1
strcpy_s(pn, strlen(temp) + 1, temp); //copy string into smaller space
// 返回pn
return pn;
}
全部回答
- 1楼网友:渡鹤影
- 2021-03-03 13:47
我的电脑更换主板安装win8.1后也遇到vc2015x64安装出错的问题,导致一些驱动不能成功安装,而查询后发现要首先安装补丁windows8.1-kb2999226-x64和windows8.1-kb2919442-x64,但这两个补丁一直安装不成功,折腾了两天,终于搞定了:
1、管理员模式启动cmd,输入:wusa.exe /uninstall /kb:2999226,回车卸载;
输入:dism/online /cleanup-image /startcomponentcleanup,回车执行完成。
2、打开运行,输入“services.msc”命令打开服务窗口,找到windowsupdate服务,将其停止;
然后进入“c:\windows\softwaredistribution\datastore”文件夹,将里面的文件全部删除;进入“c:\windows\softwaredistribution\”,将其中的“download”里的文件删除干净。
3、重启电脑,关闭防火墙和电脑上的安全防护类软件。
4、点击安装补丁windows8.1-kb2999226-x64和windows8.1-kb2919442-x64,补丁最后到微软官网上下载;
之后就可以顺利安装或修复vc2015x64了。
我要举报
大家都在看
推荐资讯