我找到了这个示例代码,我尝试使用Google (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中与VLAS合作,所以我习惯了:

#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);
} 

谢谢!

有帮助吗?

解决方案

其他提示

这是指向INT数组的指针的类型。

(int (*)[]) 是指向一系列的指针 ints。等效于 int[n][m] 函数参数。

这是C中的一个常见习语:首先要做一个malloc保留存储器,然后将其施放为所需的类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top