gpt4 book ai didi

c++ - 使用二维数组作为参数

转载 作者:行者123 更新时间:2023-11-28 07:16:36 25 4
gpt4 key购买 nike

我正在尝试让一些函数在二维数组上工作:

void display_matrix(int**, int, int);
void gen_matrix(int**, int, int);

int main()
{
srand(time(0));
int m=5, n=3;

int my_matrix[m][n];
gen_matrix(my_matrix, m, n);
display_matrix(my_matrix, m, n);
}

我不知道出了什么问题,但是当我调用这些函数时出现以下错误:[错误] 无法将参数“1”的“int ()[(((sizetype)(((ssizetype)n) + -1)) + 1)]”转换为“int*”到'void gen_matrix(int**, int, int)'

我知道我可以使用 vector ,但我正在努力练习并记住指针和数组的使用。

最佳答案

<type> <name>[<dim1>][<dim2>] 的形式声明一个矩阵定义一个隐式步幅为 dim1 的内存块。通过使用 dim1 的倍数到达正确的行并从那里偏移第二个维度来访问内部元素。

类型 <type> <name>**是指向指针数组的指针——非常不同。该结构由指向数据行的指针数组组成。在调用子程序之前,必须适本地分配和链接它们。也没有要求它们是连续分配的,并且需要对每个新行上的每个元素进行间接查找。

优点是行可以有不同的长度,适合一些没有矩形结构的算法。

关于c++ - 使用二维数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20132524/

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