vs2019 scanf报错

img
问题在哪

代码修改如下


#include<stdio.h>
int main()
{
    char password[20];
    printf("请输入密码:");
    scanf_s("%s", &password,20);
    printf("请确认(Y/N)");
    getchar();
    int ch = getchar();
    if (ch == 'Y')
        printf("确认\n");
    else
        printf("放弃确认\n");
    return 0;
}

可能是越界了,初始化的时候定义了大小,后面再写string[20]就是访问字符串数组第21号元素,可能是这里造成了越界

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char string[20] = {0};
    scanf("%s", string);
    printf("%s", string);
    return 0;
}

有帮助望采纳

输入语句改为:scanf_s("%s",password,20);


#include<stdio.h>
#pragma warning(disable : 4996)
int main()
{
    char password[20];
    printf("请输入密码:");
    scanf("%s", &password);
    printf("请确认(Y/N)");
    getchar();
    int ch = getchar();
    if (ch == 'Y')
        printf("确认\n");
    else
        printf("放弃确认\n");
    return 0;
}

(写惯了C++,不知这会不会编译错误)