【发布时间】:2014-04-02 20:05:00
【问题描述】:
我正在尝试做一些应该很简单的事情。我正在制作一个只有 1 个元素的数组。坐标x y z
所以我认为 Id 创建了一个 1 行 3 列的数组,其中 1 列用于 x y 和 z。我不再需要行,因为这个数字会不断更新,我不需要前一点的记忆,所以它只会被不断覆盖
这是我的数组
int coordinates[1][3] = {1,1,1};
这就是我试图查看我构建它是否正确以及值是否打印出来的方式。
printf("%d %d %d\n", coordinates[1][1],coordinates[1][2],coordinates[1][3] );
printf("\n");
我认为它将打印第 1 行第 1 列、第 1 行第 2 列和第 1 行第 3 列。
我的想法有什么问题?我没有得到1 1 1 作为我的结果。我得到的是随机数。
我对 C 不太熟悉。这似乎微不足道,我开始在它上面旋转太多了。
编辑:我的工作流程(另见评论)
“这是我尝试的第一件事。回想数组 101 和索引是 n-1,因为看起来我在数组边界之外的随机内存地址中获取元素。不幸的是我仍然没有工作我开始击败我头靠墙。”
我试过了
printf("%d %d %d\n", coordinates[0][0],coordinates[0][1],coordinates[0][2] );
printf("\n");
但我又得到了随机数
结论
好吧,我终于弄清楚我做错了什么。你们都是对的。我正在寻找我的代码的错误位置。感谢您的及时回复。发生的事情是我最初在我的代码中将我的坐标称为浮点数。我没有在这里复制和过去,所以我在这里称它为 int 。因此,当我尝试使用 %d 打印时,它试图为浮点数打印一个 int,从而导致结果混乱。我将 %d 切换到 %f (我不知道 printf 是如何工作的,我猜是这样)并且它起作用了!。绿角的错误,我很抱歉!再次感谢您的帮助!
【问题讨论】:
标签: c arrays multidimensional-array