【发布时间】:2016-06-14 13:55:36
【问题描述】:
为什么即使我尝试提供正确的输入,C 也会告诉我这是不安全的?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char id[8];
printf("Your ID:");
scanf("%s", id);
printf("%s", id);
return 0;
}
我假设是因为它可以被利用?怎么样?
【问题讨论】:
-
互联网搜索不起作用吗?
-
如果我输入一个 50 个字符的字符串会怎样?你只有一个 8 字节的缓冲区。
-
如果有人输入超过 8 个字符,它会覆盖内存,可能带来灾难性的后果。
-
使用
char id[8],您分配了固定数量的内存,但scanf不知道。 -
谢谢大家,我明白了。我应该环顾四周!