c 指针的课堂示例
#include<stdio.h>int main()
{
char str;
printf("请输入字符串:");
scanf_s("%s", str);
printf("str:%s\n", str);
printf("str的地址为:%p\n", str);
printf("str第一个字符的地址为:%p\n", str);
return 0;
}
按照视频输入的,请问是我遗漏了什么吗?
scanf_s("%s", str);有3个参数
很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。比如:char d;写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。 很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素。比如:char d;写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。 ba21 发表于 2018-2-10 22:12
很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素。比 ...
谢谢解答,我加了大小值后,可以运行了,但str 和str的位置输出不一致,请问,按常理来说是不是应该一致?
页:
[1]