while(1){
//Command prompt
char *command;
printf("%s>",current_working_directory);
scanf("%s",command);<--seg faults after input has been received.
printf("\ncommand:%s\n",command);
}
我收到了一些不同的错误,它们似乎无法重现(此时的段错误除外)。这段代码大约在 10 分钟前运行良好,然后它无限循环 printf 命令,现在它在上面提到的行上出现了故障。我唯一改变scanf(">%s",command);
的是它现在的样子。如果我将命令变量更改为数组,它就可以工作;显然,这是因为为它预留了存储空间。
- 我因为告诉某人他们需要 malloc 指针*而被起诉(但这通常似乎可以解决问题,例如将其设为数组)
- 我输入的命令是“魔法”——5 个字符——所以不应该有任何疯狂的堆栈溢出。
- 我在 Mac OS X 10.6 上运行最新版本的 xCode(非 OS4)和标准 gcc
- 这就是我编译程序的方式:
gcc --std=c99 -W sfs.c
只是想弄清楚发生了什么。因为这是一个学校项目,我永远不会再看到了,我只会编写一些菜鸟的工作,这会让我的老板哭泣 :) 但之后我很想弄清楚为什么会发生这种情况,而不仅仅是让一些修复它,如果有一些修复它为什么该修复工作。