C语⾔中,scanf与scanf_s的简单区别scanf()不会检查输⼊边界,可能造成数据溢出,scanf_s()会进⾏边界检查。如name[5],scanf("%s",name),如果输⼊abcdefgh,则会使得fgh溢出进⼊其他地⽅,造成程序错误,容易被⿊客利⽤;⽽scanf_s("%s",name),则会只会接收前5个输⼊,其后的⽆效,...
C语言中,scanf与scanf_s的简单区别 scanf()不会检查输入边界,可能造成数据溢出,scanf_s()会进行边界检查。 如name[5], scanf("%s",name),如果输入abcdefgh,则会使得fgh溢出进入其他地方,造成程序错误, 容易被黑客利用;而scanf_s("%s",name),则会只会接收前5个输入,其后的无效,避免了程序的漏洞。
scanf()不会检查输入边界,可能造成数据溢出,scanf_s()会进行边界检查。 如name[5], scanf("%s",name),如果输入abcdefgh,则会使得fgh溢出进入其他地方,造成程序错误, 容易被黑客利用;而scanf_s("%s",name),则会只会接收前5个输入,其后的无效,避免了程序的漏洞。