m0_69358180 2022-09-09 09:37 采纳率: 100%
浏览 37
已结题

strcpy函数调试时报错显示unsafe

关于strcpy函数:
有一小段代码如下:

#include<stdio.h>
#include<string.h>

int main()

{
char cPrice1[50]="包子一元一个";

puts("原来的招牌内容是:");
printf("\t%s\n", cPrice1);

strcpy(cPrice1, "包子壹元壹个");
printf("\t%s\n", cPrice1);
return 0;

}

调试时出现以下报错:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 2022090801 D:\Malloy_outer_trace\VSprojects\2022090801\源.c 70

更改函数为strcpy_s后,仍然报错:
显示(修改行):
1、严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0165 函数调用中的参数太少 2022090801 D:\Malloy_outer_trace\VSprojects\2022090801\源.c 69
2、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2198 “strcpy_s”: 用于调用的参数太少 2022090801 D:\Malloy_outer_trace\VSprojects\2022090801\源.c 69

不知道这里参数太少什么意思,我看教科书上代码,strcpy函数也能正常使用,为什么这里就unsafe了呢?
strcpy和strcpy_s的用法一样吗?
谢谢解答[rose]!

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-09-09 09:39
    关注

    改用strcpy_s
    用法与strcpy差不多,但多一个字符串最大长度的参数,确保目标字符串不会溢出
    改为:
    strcpy_s(cPrice1,,60,"包子壹元壹个");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值