我找到了这个示例代码,我试图谷歌(int (*)[])var1
可能代表什么,但我没有得到有用的结果。
#include <unistd.h>
#include <stdlib.h>
int i(int n,int m,int var1[n][m]) {
return var1[0][0];
}
int example() {
int *var1 = malloc(100);
return i(10,10,(int (*)[])var1);
}
通常我在C99中使用VLA,所以我习惯了:
#include <unistd.h>
#include <stdlib.h>
int i(int n,int m,int var1[n][m]) {
return var1[0][0];
}
int example() {
int var1[10][10];
return i(10,10,var1);
}
谢谢!
答案 0 :(得分:11)
答案 1 :(得分:1)
指向一个int数组的指针是一个类型转换。
答案 2 :(得分:0)
(int (*)[])
是指向int
数组的指针。等效于int[n][m]
函数参数。
这是C中常见的习惯用法:首先执行malloc来保留内存,然后将其转换为所需的类型。