我使用malloc后,程序突然要求输入

时间:2013-03-13 12:19:59

标签: c malloc

我是新手程序员

//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_

下划线闪烁,表示需要输入。

这里有什么问题?是分配吗?或者下面的代码?

好的抱歉,让我澄清一下,我正在使用codeblocks。所以当我得到一个闪烁的光标时,这意味着它需要一个输入。在我得到这个输出后,似乎正在发生无限循环的输入。

2 个答案:

答案 0 :(得分:3)

您只是看到文本终端的光标。它可能会闪烁,也可能不闪烁,这本身并不意味着什么。

您可能想要添加换行符:

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

将输出放在自己的一行上。

答案 1 :(得分:0)

printf之后的光标并不意味着它正在等待输入。

您可以使用strace确认这一点,如果它在read系统调用中等待。

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