C访问冲突写入位置scanf_s [英] C Access violation writing location scanf_s

查看:27
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆