不知道为什么在我的函数go内部的这个简单循环中的顺序很重要:main
int go = 1;
int choice;
char *n;
while(go){
printf("1: insert letter into tree\n");
scanf("%d", &choice);
if (choice == 1)
{
printf("enter letter: ");
scanf("%s", n);
printf("%s\n", n);
}
}
我得到一个分段错误。但是当我这样写的时候,
int choice;
char *n;
int go = 1;
while(go){
printf("1: insert letter into tree\n");
scanf("%d", &choice);
if (choice == 1)
{
printf("enter letter: ");
scanf("%s", n);
printf("%s\n", n);
}
}
在go底部,它按预期工作。无论如何,我通常都会定义全局变量go,但我希望能深入了解为什么会在主函数内部发生这种情况。