C访问冲突写入位置scanf_s [英] C Access violation writing location scanf_s
本文介绍了C访问冲突写入位置scanf_s的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是我的代码:
main()
{
char firstName[30], lastName[30];
printf("What is your name? ");
scanf_s("%s %s", firstName, lastName);
printf("Your name is %s %s
", firstName, lastName);
}
我试过使用scanf,但vs说它已被弃用,建议使用scanf_s。我知道您在变量前使用&;/指针,除非它是字符串/char[](这本来就是这样),我真的不知道错误是什么。也许是方法参数的问题?感谢您的任何帮助。
推荐答案
MS习惯于用"安全"版本替换标准C函数,scanf_s就是这样一种实现。文档在此:http://msdn.microsoft.com/en-us/library/w40768et.aspx
我相信如果您进行此更改,错误将消失:
scanf_s("%s %s", firstName, _countof(firstName), lastName, _countof(lastName));
我也相信有一种方法可以避免他们对语言的破坏,但是我几年前就不再使用MSVC了,正是因为这个原因。
这篇关于C访问冲突写入位置scanf_s的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文