#include<stdio.h>
int main()
{
char *ch;
int n=10;
gets(ch);
puts(ch);
printf("%d\n",n);
}
#include<stdio.h>
int main()
{
char *ch;
int n=10;
gets(ch);
printf("%d\n",n);
puts(ch);
}
在第一个中,分段错误发生在 print(n) 处,而在第二个中,它发生在 puts(ch) 处。如果在声明 n 之后也使用了 print(n),则不会发生错误。