为什么没有必要提到多维数组的第一维,必须提到其他维度:
int A[][][2]={{{1,2},{3,4}},{{4,5},{5,6}}}; // error
int A[][2][2]={{{1,2},{3,4}},{{4,5},{5,6}}}; // OK
Run Code Online (Sandbox Code Playgroud)
我无法理解这背后的概念或逻辑.
我有以下数组结构:
left , right , top
top , left , right
top , top , left
Run Code Online (Sandbox Code Playgroud)
我想在C中声明它,我这样做了:
char *movements[][] = {{"left","right","top"},
{"top","left","right"},
{"top","top","top"}
}
Run Code Online (Sandbox Code Playgroud)
但我得到了这error : array has incomplete element type.
是实现这一目标的正确方法(声明和访问(打印)).我是否需要采用三维数组?
我想创建一个存储任何整数 n 的乘法值的数组。之后,我想将该数组传递给另一个函数并打印出该数组。但是,我收到以下错误:
我的代码:
这是我的 .c 文件:
#include "multiplication.h"
#include <stdio.h>
int main(){
int num;
int arr=multiplication(4);
printArray(arr);
}
int mulitpication(int num){
/* initialize array and build*/
int arr[num][num];
for(int i=0; i<num;i++){
printf("row number: %d ",i);
for(int j=0;j<num;j++){
printf("column number: %d", j);
arr[i][j]= (i+1)*(j+1);
}
}
return arr;
}
void printArray(int arr[][]){
int i;
for(i=0;i<sizeof(arr);i++){
for(int j=0;j<sizeof(arr);j++){
printf("%d ",arr[i][j]);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的头文件:
void multiplication(int num);
void print(int arr[][]);
Run Code Online (Sandbox Code Playgroud)
错误:
multiplication.h:4:19: error: array has incomplete element type 'int []' …Run Code Online (Sandbox Code Playgroud)