鱼C论坛

 找回密码
 立即注册
查看: 6106|回复: 4

c-串,为什么总是提示“strcpy 不安全”什么的

[复制链接]
发表于 2013-3-22 23:10:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
using namespace std;
int mani()
{
char* s1 = "hello";
char* s2 = "123";
char a[20];
strcpy(a,s1);
cout<<a<<endl;
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-22 23:11:25 | 显示全部楼层
编译一个大程序的时候,用了strcpy通不过,用这个小程序也不行
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-23 13:13:48 | 显示全部楼层
本帖最后由 xhhyi 于 2013-3-23 13:16 编辑

微软提供了一些具有更强安全性的CRT函数,如strcpy_s,所以提示strcpy不安全,可以不理会
有缓冲区溢出时, 使用strcpy_s函数会抛出一个异常。而使用strcpy函数的结果则未定,它可能改变了程序中其他部分的内存的数据,导致程序数据错误。

int mani() // 写错了 应该是main
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-23 13:43:59 | 显示全部楼层
int mani() 应为 int main()
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-24 00:44:18 | 显示全部楼层
额,谢了。mani()纯属意外
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-5 08:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表