コンパイルエラーの原因は
char input[];
ここで input のサイズを決めていないことです。
「いつ」「何文字」入力されるかわからない状況に対処するためのコードとしては、
どんどん文字が入力されたら、input をどんどん増やしていくのがいいのかなと考えています。
int main(int argc, char* argv[])
{
int current_size = 4;
char* input = malloc(current_size);
int current_index = 0;
while (1)
{
scanf("%c", &input[current_index++]);
if (current_index >= current_size)
{
int new_size = current_size;
new_size += 4;
char* new_input = malloc(new_size);
for (int i = 0; i < current_size; i++)
{
new_input[i] = input[i];
}
free(input);
input = new_input;
current_size = new_size;
}
}
free(input);
return 0;
}
どうでしょうか?
#追記
コードミスがありました。すみません。修正しました。
scanf("%s", input[current_index++]); → scanf("%c", &input[current_index++]);
退会済みユーザー
2017/07/25 02:00