0

私は初心者のプログラマーです

//allocating space for final output
//text_count is given by another function, let's just say i have a value for it
//out is my typedef struct

out *fin[text_count];

for(i=0; i<text_count; i++){
  fin[i] = malloc(sizeof(out));
}

//this is a test
fin[1]->appearances = 1;

printf("%d",fin[1]->appearances);

// ..other code

この割り当ての後、プログラムが突然これを出力することに気付きました:

1_

アンダースコアが点滅しており、入力が必要であることを示しています。

ここで私の問題は何ですか?配分ですか?または下のコード?

申し訳ありませんが、これを明確にさせてください。コードブロックを使用しています。そのため、カーソルが点滅しているときは、入力が必要であることを意味します。この出力を取得した後、入力の無限ループが発生しているようです。

4

2 に答える 2

3

テキスト端末のカーソルが表示されているだけです。点滅しているかもしれませんし、点滅していないかもしれませんが、それ自体には何の意味もありません。

改行を追加したい場合があります。

printf("%d\n", fi[1]->appearances);

独自の行で出力を取得します。

于 2013-03-13T12:22:47.607 に答える
0

printfの後のカーソルは、入力を待機していることを意味するものではありません。

syscallstraceで待機している場合は、を使用してこれを確認できます。read

使用法: strace ./myApplication arg1 arg2...

于 2013-03-13T12:32:43.670 に答える