所以我有以下代码:
void main(int argc, char **argv)
{
int loggedIn=0;
char *currentCommand;
while (!loggedIn)
{
printf("Enter your command:");
scanf("%s",currentCommand);
printf("\n%s\n",currentCommand);
}
}
问题是
scanf()
第一次运行良好,然后开始读取(null)
,输出将在无限循环中Enter your command: (null)
。我想输入更多的命令,并在更改loggedin的值时停止,但一旦输入一个命令,它就会开始无休止地打印。
最佳答案
您需要使用malloc为currentcommand指针分配内存(并在末尾释放内存),或者在开头为其指定一个大小,如
char currentCommand[256];