【发布时间】:2017-12-12 07:08:49
【问题描述】:
我正在尝试打印具有特定维度的数组,但它在运行时会打印出错误的实体。
//code
#include <stdio.h>
int my_array[2] [4] = {
{1, 2, 3, 4}, {5, 6, 7, 8}
};
void print_array(const int h, const int w, char array[][w]) {
int nRow = h;
int nColumn = w;
for(int i = 0; i < nRow; i++) {
printf("--- Row %d --- \n", i);
for(int j = 0; j < nColumn; j++) {
printf("Column [%d] = %d \n", j, array[i] [j]);
}
}
}
int main(int argc, char **argv)
{
const int array_width = 4;
const int array_height = 2;
print_array(array_height, array_width, my_array);
return 0;
}
编译后打印出下一个结果:
【问题讨论】:
-
char array[][w]应该是int array[][w] -
@BarmakShemirani 而这应该作为答案发布。
-
然后,它给了你一些警告,你应该更正你的代码以获得没有警告。
-
@SpongeBobSquarePants 微软不允许从控制台复制文本吗?您的输出应包含为文本,而不是文本的屏幕截图,其中文本是相对不可读的 5pt。
-
@BarmakShemirani “拉伸”答案并不难。将该行复制到下面的编辑字段中。使用一些换行符进行格式化。然后制作一个以“This line ...”开头并以“because ...”开头的小文本。提到
char和int的不同大小,你猜猜它们是什么。这个问题不是世界级的,但也不是题外话。因此,您甚至应该避免被“对离题问题的好答案是坏答案”家族的人投反对票。
标签: c arrays function multidimensional-array