存储变量的C字符数组

存储变量的C字符数组,c,arrays,C,Arrays,我想将2个变量存储到char数组中,并打印第一个变量,如下所示 const char *a[2]; a[0] = getCapital(bufferStore); //"Australia" a[1] = getCurrencyCode(bufferStore); "9876.00" printf("%s", a[0]); 但是,我没有得到任何输出。getCapital和getCurrencyCode的代码在这里应该是多

我想将2个变量存储到char数组中,并打印第一个变量,如下所示

const char *a[2];
            a[0] = getCapital(bufferStore); //"Australia"
            a[1] = getCurrencyCode(bufferStore); "9876.00"

            printf("%s", a[0]);

但是,我没有得到任何输出。getCapital和getCurrencyCode的代码在这里应该是多余的。我想知道的主要问题是如何打印“澳大利亚”。我是C语言新手,指针很难理解,我的作业2小时后就要交了。任何帮助都将不胜感激

文件
stdout
,即
printf
写入的文件,默认情况下是行缓冲的。这意味着您写入的所有内容都将被缓冲,即存储在内存中,并在打印换行符时被刷新(和实际打印)。

您确定函数的代码是冗余的吗?这似乎对你的问题很重要。另外,你试过调试你的应用程序吗?您是否尝试过在字符串末尾添加新行以将其刷新?谢谢Joachim Pileborg!我添加了一个新行,它就可以工作了。我简直不敢相信。如果你的程序在那之后正常退出了
printf
,那么换行符就没有必要让字符串可见了(尽管它当然会在没有换行符的情况下显示)。换行符将内部输出缓冲区设置为“flush”,与正常程序退出/返回一样。上下文就是一切。正如@Lourger在对OP的评论中提到的,通过添加
'\n'
fflush(stdout)
来改变行为表明程序异常终止,暗示着更大的问题。@EOF可能,但如果没有MCVE,就真的无法判断。