问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VS2013 C++中的strcpy用不了,说换成strcpy_s,还是出现错误了。

发布网友 发布时间:2022-06-09 11:59

我来回答

5个回答

热心网友 时间:2023-09-27 15:18

首先x,m,xm都只是指针变量,x,m指向常量字符串"王"和"大宝"

其次,strcpy函数原型:

char *strcpy(char *dest,  char *src);

函数吧src字符串复制到dest所指的数组中,这里潜在的要求是dest所指的不能是常量字符串,否则程序即使不报错,也会运行出错。函数返回值是指向dest的指针。

这是因为常量字符串不能被修改。

你的程序会运行错误。

至于修改成strcpy_s,这只是增强了函数的安全,并不改变strcpy函数的要求。

strcpy_s函数的原型是:

strcpy_s(
  char *strDestination,
  size_t numberOfElements,
  const char *strSource
);
第二个参数是strDestination字符串的大小,用意是控制复制的字符数,最多复制numberofelements个字符

#include<iostream>
using namespace std;
class father
{
char *x, *m, *xm;
public:
father()
{
x = "王";
m = "大宝";
xm = new char[strlen(x)+strlen(m)+1];
strcpy_s(xm,strlen(x)+strlen(m)+1,x);
strcat_s(xm,strlen(x)+strlen(m)+1,m);
}
void print()
{
cout<<xm<<endl;
}
};
void main()
{
father xx;
xx.print();
}

来自:求助得到的回答

热心网友 时间:2023-09-27 15:18

函数用错了。无论是strcpy还是strcpy_s,都是将后面一个字符串的内容复制到前面一个字符串中。你写的代码中,x是一个指针,指向一个字符串常量"王",x这里指向的是一个常量区域,如果你调用strcpy或者strcpy_s,将m拷贝到一个常量区域,这就错了。因为字面值常量的内存是不能修改的,这就是为何是常量的原因。要解决你的问题,你可以先给x分配一个空间x = new char[3];然后对x进行操作。记得在类的析构中释放分配的空间。

热心网友 时间:2023-09-27 15:19

不能x="王“这样赋值,只能这样初始化。也不能对char *x="abc"这样定义的指针x进行写操作,因为这样定义的字符串是常数。

热心网友 时间:2023-09-27 15:19

strcpy_s(x,m);

热心网友 时间:2023-09-27 15:20

貌似是你的形参不对吧。。。
VS2013 C++中的strcpy用不了,说换成strcpy_s,还是出现错误了。

函数吧src字符串复制到dest所指的数组中,这里潜在的要求是dest所指的不能是常量字符串,否则程序即使不报错,也会运行出错。函数返回值是指向dest的指针。这是因为常量字符串不能被修改。你的程序会运行错误。至于修改成strcpy_s,这只是增强了函数的安全,并不改变strcpy函数的要求。strcpy_s函数的原型是...

...VS2013运行的时候出现 error C2660: “strcpy_s”: 函数不接受 2...

while ((n &lt; MAXLINES) &amp;&amp; (gets_s(buffer) != 0) &amp;&amp; (buffer[0]) != '\0'){if ((lines[n] = (char *)malloc(strlen(buffer)+1)) == NULL) //要多一个return -1; strcpy_s(lines[n++],strlen(buffer)+1, buffer); //第二个参数是数据最大长度} ...

为什么在vs2013中用c编程时不能用scanf_s函数输入字符串了

带“_s”后缀是为了让原版函数更安全:scanf()在读取时不检查边界,所以可能会造成内存访问越界,例如分配了5字节的空间但是读入了10字节,而scanf_s是visual studio中加入的完善版函数,可防止这类引用到不存在的元素的情况发生。而你的代码是在VS中编译的,找不到vS下的函数,所以用不了。

vs2013中VC问题,编译无错误,生成解决方案出现错误,无法解析的外部符号...

晕 你怎么学习c++的啊 你难道不知道电脑有窄字节和宽字节吗???你需要将窄字节转换为宽字节,或者是编辑编译器设置为窄字节。

vs中scanf怎么用不了

VS的SDL选项是编译器在源代码层次尽最大可能减少安全漏洞的数量和严重性,比如scanf这样的函数在目前看来就是不安全的,可能会溢出导致崩溃,打开这个选项,那么这类函数将视为错误,以前的版本默认是关闭SDL选项的,在学习阶段关闭SDL会少很多限制 在建立项目时把安全开发生命周期前面的对号去掉:已经建立...

VS201中warning C4047: "=":"FILE *"与"errno_t"的间接级别不同。怎么...

fopen_s调用错了 errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );返回值不是FILE 需要 fopen_s(&amp;data_file, filename, "r");返回值是错误号。这个和fopen是不同的。

openmvG要怎么安装啊,有没有教程呀?

我用的VS2013不支持C++新特性:constexpr,所以建议你使用VS2015或更新版本,如果一定要用VS2013,可以这样做:在src/openMVG/cameras/Camera_Common.hpp文件中将有constexpr的地方直接去掉,或者改成模板函数也是可以的:运行样例,这里遇到一个坑:DenseStoraage.h line 86报错:R6010 Assertion failed,这是一个断言错误,在...

...main() { char a[10], b[10] = "copy"; strcpy_s(a,b);

这里面是因为strcpy_s需要输入3个参数,而你只输入了2个参数。所以会报错。解决的方案有2种:(1)添加宏命令 在文件中添加 define _CRT_SECURE_NO_WARNINGS这样就忽略了使用新函数而报错了。(2)添加strcpy_s函数的输入参数。对于字符串拷贝函数来说 errno_t strcpy_s( char *strDestination, ...

vs快速屏蔽的快捷键_VS修改快捷键

1、点击电脑左下角“开始”选项,电脑启动后,再点击∨S2013;2、进入电脑软件界面,点击“更改我的产品许可证”;3、输入产品密钥BWG7X_J98B3_W34RT_33B3R_JⅤYW9,然后再点“应用”;4、此时ⅤS2013就可以使用了。不同年份的ⅤS许可证过期解决办法,应该是大同小异的。8. vs调整代码格式快捷...

...编译能够通过,链接的时候就会出现如图错误,求高手指导解决!!!_百度...

这种情况只会出现在WIN7 X64的系统下,x32下没有Program Files (x86)的目录,不会有这样的问题。所以ADS的所有访问的路径,不能有文中或特殊符号。解决方法:你把ADS安装在C根目录下就可以。比如:C:\ARM\ADSv1_2。还有运行ADS时需要以管理员身份启动。参考:http://www.huomo.cn/os/article-199dd.html 本...

VS2013和VS2010哪个好 E2013HC是不是LED vs2010和2013哪个好用 C加加2013程序是干嘛的 vs2015和vs2013哪个好 VS2013是什么 听说2013广东C 2013款C180 2013款C260
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
上海2013中考二模浦东新区和静安区市重点参考录取分数线 2012上海中考自荐 腾讯服务器崩溃了吗 淘宝店铺名怎么工商注册 开淘宝店需要办理工商营业登记册吗?怎么办理? 淘宝开店需要个体户工商证吗?怎么开店? 腾讯垃圾服务器 西安水岸龙庭怎么样?好不好?值不值得买? 任何人都可以发腾讯黄金红包吗? 夫妻是否可以单方面强制离婚 如何给产品做打码做记号 求两个字的飞车 网名 好听点的 【女女用的】 谢了 教师资格合格证有了,普通话证书没有,是不是不能申请等于白考了 用实例说明怎样建立和谐的人际关系的演讲稿 关于构建人际关系的演讲稿、、 速度 智能手机每天定时开关机是否对手机有伤害 如何购理财通的理财基金 A1 是什么不锈钢 英语等级a1是什么 微信怎样解除免密支付功能 翻译几个英文装甲弹。 弹钢琴英语怎么写 电脑弹出来的英文是什么意思啊 请教:穿甲弹和高爆弹的英文单词 我中弹了的英文是什么? 弹钢琴的英语单词怎么写 弹 的英语翻译是什么? 弹钢琴的英文是什么 “篮球弹起爱情落地”英文 棒丝是啥意思 c++中的strcpy函数 支付宝蚂蚁金服的收钱码在哪里下载?就是提现没有手续费的收钱码贴纸的电子版,我的贴纸如图,打码了。 谁知道绿豆,薏米,黑豆,红小豆,一起打豆浆。啥用 豆,薏米仁,绿豆,燕麦枸杞子能一起打豆浆吗 甘肃省2014年公*什么时候报名?什么时候考试?考试内容是什么?地方公*是不是事业单位 2014年地方事业单位考试和地方公*都是什么时候报名,考的内容都是什么?我是甘肃天水市的 换了怎么申请健康码? 甘肃省行政事业单位实行统一考试到底考不考?什么时候考?不考为什么不给签协议书的学生发报到证? 薛佳凝的详细资料、年龄?? 想要以下这些人的资料~ 电视剧《在悉尼等我》中,女主角多大年龄,在现实中? 图中的女人是谁?真漂亮 法证先锋II 中的一个女演员是谁,有图片 我爱河东狮中白水心的扮演这是谁 老年人吐血后是否输血原则 WORD自动生成目录可设置几级标题 维修车间办公电脑和装系统是属于什么部门 公司要加一个专门负责电脑的部门应该叫什么部? 负责公司的电脑维修,数据库,企业ERP一般是哪个部门?? 电脑维修行业属于IT 吗?