奇怪的指针不兼容的分配

时间:2010-06-03 16:14:05

标签: c gcc pointers

我正在研究一些C代码。

有这样的功能;

void Get(double x_la[], 
double y_la[], 
double z_la[])

在函数体中,由于我创建的其他一些原因;

double (*la)[3];

据我所知,x_la,y_la和z_la是double类型的指针。

我需要“连接”与之前的“la”相关的指针,所以我想尝试一下;

la[0]=x_la;
la[1]=y_la;
la[2]=z_la;

但在使用gnu编译器进行编译时出现错误;

错误:将'double *'赋值为'double [3]'

时出现不兼容的类型

我做错了什么?否则,怎么能做得好呢?

由于

Pd积。宣告

是否完全相同

加倍y_la []

double * y_la

1 个答案:

答案 0 :(得分:4)

您想要double *la[3];

正如你所知,la不是指向double的指针,而是指向三个数组的指针,因此每个la[i]仍然是指向除double之外的其他指针,并且存在双重问题,因为你真的只有其中一个。

关于第二个问题,它们在参数列表中只是相同的,即使只是在旧式声明中也是如此。输入原型后,类型一致性由一组更精确的规则控制。