(int(*)[])var1代表什么?

Fra*_*ter 8 c c99 variable-length multidimensional-array

我找到了这个示例代码,我试图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);
} 
Run Code Online (Sandbox Code Playgroud)

通常我在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);
} 
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mic*_*sen 11

这意味着" 将var1转换为指向int数组的指针 ".

  • 很棒的参考网站! (3认同)