关于C语言中的字符串输入问题

直接上代码

#include<stdio.h>
int main()
{

    char name[10];
    scanf("%s",name);
    printf("%s\n",name);
    return 0;
}

最终结果是这样的,请问为什么可以输出呢?
图片说明

数组越界,你name就10个字符,输入那么多肯定有问题

缓冲区溢出了,将name开大一些。
或者,如果你要预防用户故意输入过长的字符串,可以用scanf_s(vc++ 2008以上支持)

#include<stdio.h>
int main()
{

    char name[10];
    scanf_s("%s",name, sizeof(name)-1);
    printf("%s\n",name);
    return 0;
}