arrays - 如何打印二维数组?
问题描述
我有两个功能。一个创建给定数字的乘法表,另一个函数将数组打印出来。下面是我的代码:
这是错误(第 18 行):
expression must be a pointer to a complete object type
如何修复此错误并打印数组?另外,我不知道如何在每一行之后打印一个新行。
#include "multiplication.h"
#include <stdio.h>
int arr[][];
void mulitpication(int num){
/* initialize array and build*/
int arr[num][num];
for(int i=0; i<num;i++){
for(int j=0;j<num;j++){
arr[i][j]= (i+1)*(j+1);
}
}
}
void print(int arr[][]){
/* print the arr*/
int i;
for(i=0;i<sizeof(arr);i++){
for(int j=0;j<sizeof(arr);j++){
printf("%d ",arr[i][j])**(line 18)**;
}
}
}
解决方案
如果使用支持 VLA 的 C99 或更高版本,请将所需尺寸传递给打印功能。
// void print(int arr[][]){
void print(size_t rows, size_t cols, int arr[row][col]){
size_t r,c;
for (size_t r = 0; r < rows; r++) {
for (size_t c = 0; c < cols; c++) {
printf("%d ",arr[r][c]);
}
printf("\n");
}
}
推荐阅读
- codenameone - 如何使用本机接口将 IOS 回调映射回代号中的此方法
- java - 在要传递到“Matcher.replaceAll()”的文本框中输入换行符
- ios - 无法完成 dSYM 的提交,文件不再存在于 (null)
- java - 在自定义 ListView 适配器中执行 findViewById() 时发生 NullPointerException
- javascript - 插入 USB 时连接到 Adeept 板的 Micro:Bit 复位
- python - 将文件从屏幕截图移动到不同的文件夹
- java - Java调用的BPMN流程
- snowflake-cloud-data-platform - 雪花 Python 连接器未与 AWS 胶水 Python 外壳连接
- windows - 在 Windows 命令提示符和字符串“”中连接文件
- excel - 如何在 Flutter 中从 excel 表中分类选择数据