c - 从不兼容的指针类型传递参数 1 of 'x'

标签 c

我尝试创建一个 void 函数,它无法获取二维数组,但它们可以用于输入和输出。

这个函数。

void Charge(float *p[15][10]){

调用是这样的:

Charge(&pol);

数组为Float pol[15][10]

我在linux上使用GCC编译器

泰。

最佳答案

如果使用 gcc,您应该会收到如下警告:

passing argument 1 of 'Charge' from incompatible pointer type | expected float * (*)[10] but argument is of type float (*)[15][10]

这意味着原型(prototype)应该是void Charge(float (*p)[15][10]) - 指向float [15][10]的数组指针 code> 而不是 float* 的二维数组,这不是您想要的。

<小时/>

但是并没有真正的理由使用这个数组指针语法。这样做就更清楚了:

float arr[15][10];
...
Charge(arr);
...
void Charge (float arr[15][10]);

由于数组衰减,这确实将数组指针传递给函数。现在您可以在函数中将其用作 arr[i][j] 而不是 (*p)[i][j]

<小时/>

使用 21 世纪 C,您还可以执行以下操作:

float arr[15][10];
...
Charge(15, 10, arr);
...
void Charge (size_t x, size_t y, float arr[x][y]);

关于c - 从不兼容的指针类型传递参数 1 of 'x',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283705/

相关文章:

c - 我无法从文件中找出字符串的位置

c++ - BMI计算器C代码

Char* 字符数组,但 int* 不是整数数组?

c++访问双数组错误在c中工作

c++ - Sublime Text 3 以 C++ 方式打开 C 文件

c - 根据概率选择随机项目

C 指针和数组

c - 将 xlib XImage 保存为 PNG

c - 如何将输入文件划分为 MapReduce 的碎片/文件

c - 在动态分配的结构中初始化动态分配的结构