私は C の初心者であり、gcc と gdb を使用してデバッグし、Fedora でプログラムをテストしています。ユーザーからの入力を受け取るプログラムがあります。入力された最初の文字列が「create」の場合は、2 番目のコマンドを調べます。それが「object」の場合は、createObject 関数に進みます。
うまくいけば、私のコードがこれを少し明確にするでしょう:
static void parseCmd(char **input) {
if(!strcmp(input[0], "create")) {
if(!strcmp(input[1], "object")) {
if(input[2] && strcmp(input[2], ""))
createObject(input[2]);
else
printf("Object needs a name\n");
}
else
printf("Command needs more parameters\n");
}
else
printf("Command not recognized\n");
}
「オブジェクトの作成」だけを入力してテストすると(オブジェクトの後にスペースがなく、ENTERキーのみ)
Linuxでは、「オブジェクトには名前が必要です」と表示されます
しかし、Windows ではプログラムがクラッシュし、ハングするだけです。Linux と同じように動作するようにコードを変更するにはどうすればよいですか?