【发布时间】:2013-12-11 03:13:29
【问题描述】:
我正在尝试打印我的程序的 2D 数组,但输出中途开始(在数据包 18 并且它没有打印出“数据包 18:”。但之后它会正确打印出其余部分到最后. 这是怎么回事?既然我已经将计数器 j 初始化为 0,我不明白为什么它会以 18 开头并且不显示文本。我做错了什么?
int i;
int j;
int s[7][50];
i = 0;
for (j = 0; j < 50; j++)
{
printf("Packet %d:\n", j + 1);
for (i = 0; i < 7; i++)
{
printf("Value of line %d: %d", i + 1, s[i][j]);
printf("\n");
}
printf("\n");
}
【问题讨论】:
-
显示
s的声明。 -
你能发布一些更完整的东西吗?包含 s 的声明也会有所帮助。
-
我还没有足够的知识来写入文件,但我确实将循环限制为 30,现在它可以正确显示,所以看起来你是对的。我不知道有限制,奇怪的是它在开始而不是结束时切断了出口。
-
就目前而言,
s未初始化,因此从技术上讲,您会得到未定义的行为。您还从自然顺序向后处理数组,因此您将比其他方式更努力地处理计算机上的缓存,但看起来它应该可以工作。 -
也许你可以使用 ./yourprogram |更多(在 *nix 上)