Syn*_*lar 7 c matrix multidimensional-array
我有一个二维数组,可以使用一个函数:
bool matrix[rows][cols];
func(rows, cols, matrix);
void func(int rows, int cols, bool matrix[rows][cols]) {
//...
}
Run Code Online (Sandbox Code Playgroud)
但是,只要我尝试matrix修改原始函数:
bool matrix[rows][cols];
func(rows, cols, &matrix);
void func(int rows, int cols, bool *matrix[rows][cols]) {
//...
}
Run Code Online (Sandbox Code Playgroud)
我收到一个不兼容的指针类型错误.我对此无能为力.
bool matrix[rows][cols] 是一个类型的数组数组 bool
bool* matrix[rows][cols]是一个指向bool或简单的类型指针数组的数组bool*.
因此,如果您将函数定义为采用类型数组的数组bool*,则需要传递该类型:
bool* m[row][col];
func( row , col , m );
Run Code Online (Sandbox Code Playgroud)
如果你想要一个指针bool matrix[rows][cols],那么你的方法是不正确的.
指向矩阵的指针具有以下类型:bool (*pmatrix)[rows][cols].因此,使用该类型定义函数并传递矩阵数组的地址:
func( rows , cols , &matrix );
Run Code Online (Sandbox Code Playgroud)