1
我意识到这段代码有问题。 但是,我偶然发现了一些奇怪的行为,我想知道有人能解释一下。scanf的好奇行为
实施例1:
char *foo;
scanf("%s",foo);
printf("%s",foo);
输出是:(空)。
实施例2:
int i;
char *foo;
scanf("%s",foo);
printf("%s",foo);
输出是:VAL FOO的!
为什么会出现int i导致这个“工作”?
它不起作用。它似乎做你期望的,但它是未定义的行为,因此是一个严重的错误。 – delnan 2011-02-02 22:19:31