我是新手程序员
//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。所以当我得到一个闪烁的光标时,这意味着它需要一个输入。在我得到这个输出后,似乎正在发生无限循环的输入。
答案 0 :(得分:3)
您只是看到文本终端的光标。它可能会闪烁,也可能不闪烁,这本身并不意味着什么。
您可能想要添加换行符:
printf("%d\n", fi[1]->appearances);
将输出放在自己的一行上。
答案 1 :(得分:0)
printf之后的光标并不意味着它正在等待输入。
您可以使用strace
确认这一点,如果它在read
系统调用中等待。
使用方法:
strace ./myApplication arg1 arg2...