VS中scanf_s引发的问题

为什么VS这样会出错
如果把scanf_s换成scanf在其他编译器上就没问题

#include 
#include 
struct Person                        //声明结构体类型struct Person
{
    char name[20];                //候选人姓名
    int count;                        //候选人得票数 
}leader[3] = { "Li", 0, "Zhang", 0, "Sun", 0 };    //定义结构体数组并初始化

int main()
{
    int i, j;
    char leader_name[20];            //定义字符数组 
    for (i = 1; i <= 10; i++)
    {
        scanf_s("%s", leader_name);    //输入所选的候选人姓名
        for (j = 0; j < 3; j++)
        {
            if (strcmp(leader_name, leader[j].name) == 0)
            {
                leader[j].count++;
            }
        }
    }
    printf("\nResult:\n");
    for (i = 0; i < 3; i++)
        printf("%5s:%d\n", leader[i].name, leader[i].count);
    return 0;
}

scanf_s输入字符串的时候要输入字符串长度。scanf_s("%s", leader_name,20);
代码前面加#define _CRT_SECURE_NO_WARNINGS,后可以把scanf_s改成scanf。