gpt4 book ai didi

c - 传递数组/指针作为输入参数

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:05 24 4
gpt4 key购买 nike

我对数组/指针作为输入参数有疑问。

我想使用:

int A(int ncontours, int cntr[], double* vertices[], int *triangles [3])
{
...
B(n, nmonpoly, triangles);
...
}

A 在 h 文件中定义为:

extern int A(int, int *, double (*)[2], int (*)[3]);

B 定义为

extern int B(int, int, int (*)[3])

错误信息是:

Error 1 error C2664: 'B' : cannot convert parameter 3 from 'int []' to 'int ()[3]'

我想修正A的入参,使其匹配B的调用。

我猜问题是它是一个指向数组的指针?

如何做到这一点?

谢谢!

最佳答案

int (*)[3]

意思是:给我一个指向 3 个整数数组的指针

int *triangles [3]

表示:我收到一个包含 3 个整数指针的数组。

这是两个完全不同的东西。这些表达式中符号的优先级很重要,这就是使用 () 括号的原因。

似乎 A 的定义也是错误的,由于我在上面发布的差异,它是一个完全不同的函数。如果您修正了 A 的定义,您将很可能能够毫无问题地将三角形参数传递给 B,因为它们的类型将匹配

关于c - 传递数组/指针作为输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23048162/

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