gpt4 book ai didi

c - 如何在 C 中传递指向多维数组的指针?

转载 作者:太空狗 更新时间:2023-10-29 17:10:28 24 4
gpt4 key购买 nike

我有一个与函数一起使用的二维数组:

bool matrix[rows][cols];
func(rows, cols, matrix);

void func(int rows, int cols, bool matrix[rows][cols]) {
//...
}

但是,一旦我尝试将原始函数中的 matrix 修改为:

bool matrix[rows][cols];
func(rows, cols, &matrix);

void func(int rows, int cols, bool *matrix[rows][cols]) {
//...
}

我收到一个不兼容的指针类型错误。我不知道为什么。

最佳答案

bool matrix[rows][cols]bool 类型数组的数组

bool* matrix[rows][cols] 是指向 bool 或简单地指向 bool* 的类型数组的数组。

因此,如果您将函数定义为采用 bool* 类型的数组,则需要传递该类型:

bool* m[row][col];
func( row , col , m );

如果你想要一个指向bool matrix[rows][cols]的指针,那么你的方法是不正确的。
指向矩阵的指针具有以下类型:bool (*pmatrix)[rows][cols]。因此,使用该类型定义您的函数并传递矩阵数组的地址:

func( rows , cols , &matrix );

关于c - 如何在 C 中传递指向多维数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37097303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com