鱼C论坛

 找回密码
 立即注册
查看: 4014|回复: 1

关于scnaf和sancf_s的一些问题

[复制链接]
发表于 2012-5-13 19:08:21 | 显示全部楼层 |阅读模式

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

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

x
今天做构造体的课后题出现了这样一个问题



scanf_s("%s",temp->name)  temp->name是构造体内的一个成员,成员声明是  char name[20];
但是只要这么写运行的时候就报错。提示什么XXXXXX地址怎么怎么地,看不太明白。

但是我改成scanf("%s",temp->name) 就没有任何问题。

我之所以用scanf_s是因为我电脑的系统是WIN7专业版64位,我安装的是  Visual 2010  之前用scanf的时候编译的时候老是出警告。提示我换成scanf_s.

谁能大概的给我讲解下为什么我一用scnaf_s就出错呢。十分感谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-13 20:16:56 | 显示全部楼层
ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露。所以vc++2005/2008中提供了scanf_s(),在调用时,必须提供一个数字以表明最多读取多少位字符。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-13 07:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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