我一直在嘗試處理用戶可以從中選擇的多種功能,但出於某種原因,意外的輸入不會導致開發的反應,反而會凍結。處理輸入時意外凍結
int main(){
int done = 0, isModeValid = 1;
char nextMode[15], *options[] = {"quit", "test", "getASCII"};
while(done == 0){
cls();
isModeValid = 0;
text(1);
currentOptions(options);
gets(nextMode);
int i = 0;
for(i = 0; i < (sizeof(options)); i++){
if(strcmp(nextMode, options[i]) == 0){
done = runMode(i);
break;
}
//Error seems to happen after this point
if(strcmp(nextMode, options[i]) != 0 && i == sizeof(options)){
cls();
text(3);
Sleep(750);
}
}
}
return 0;
}
void cls(){
system("cls");
}
upvoted。應該不需要計算它。如果它是靜態分配的,你就知道它的大小是多少(元素數量)。否則,如果它被動態分配....你也知道它! :) – Pynchia
@Pynchia:如果在編譯時已知大小,與使用常量相比沒有任何損失。但是對於這個問題,大小是由初始化程序決定的,所以不,我們不知道實際大小,但無論如何都要計算。 (不要忘記VLA)。 – Olaf
當然可以。我只是開玩笑,暗示誰分配了內存知道誰應該有辦法讓你的代碼知道 – Pynchia