这个strcpy不行,改成strcpy_s还是不行,请求大家帮忙解决下!

program_Three3 2017-11-20 02:49:44

#include<iostream>
using namespace std;
#include<cstring>
//#include<string.h>

char *getname()
{
char temp[80];
cout << "enter last name:" ;

char a[2] = "1";
cin >> temp;
char * pn = new char[strlen(temp) + 1];
strcpy_s(pn, temp,a);


return pn;
}
int main(void)
{
char * name;
name = getname();
cout << name << "at" << (int *)name << "\n";
delete[] name;

name = getname();
cout << name << "at" << (int *)name << "\n";
delete[] name;


return 0;
}
...全文
264 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
program_Three3 2017-11-20
  • 打赏
  • 举报
回复
好的,谢谢解决了
  • 打赏
  • 举报
回复
strcpy_s(pn, 80,temp);这样了,你用的什么编译器
program_Three3 2017-11-20
  • 打赏
  • 举报
回复
不行啊,这样子还是提示报错
  • 打赏
  • 举报
回复
strcpy(pn, temp);或 strncpy(pn, temp,sizeof(temp));
program_Three3 2017-11-20
  • 打赏
  • 举报
回复


#include<iostream>
using namespace std;
#include<cstring>
//#include<string.h>

char *getname()
{
	char temp[80];
	cout << "enter last name:" ;
	
	
	cin >> temp;
	  char * pn = new char[strlen(temp) + 1];
	 strcpy_s(pn, temp);


	return  pn;
}
int main(void)
{
	char * name;
	name = getname();
	cout << name << "at" << (int *)name << "\n";
	delete[] name;

	name = getname();
	cout << name << "at" << (int *)name << "\n";
	delete[] name;


	return 0;
}


65,187

社区成员

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

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