在将相同结构成员分配给其他成员时,在c中赋值的类型不兼容

时间:2013-12-24 17:06:02

标签: c function pointers structure assignment-operator

我正在使用c - 文件我在分配时遇到错误不兼容的类型。
我的代码如下 -

typedef struct
{
 float a1;
 float a2; .... 

 float a26;
}CPS_Param;

typedef struct
{
int b1;
CPS_Param *Param;
}CPS_IPOP;


void main () 
{
CPS_Param pParam;
CPS_IPOP *pStr;

set_Param(&pParam,0.04,0.001,0.01,0.67,0.07,....26parameters);

.....my program

pStr->Param->a1 = pParam.a1;
...26 repeat

}

set_Param(CPS_Param *pParam,float Param1, float Param2,....26 assignments)
{
pParam->a1 = Param1;   // here i am getting compatability error
pParam->a2 = Param2;   // here i am getting compatability error
...
pParam->a26= Param26;  // here i am getting compatability error
}

`

我的主要目的是......我想创建两个成员,如pParam和其他类似*Param的{​​{1}}。我将首先通过函数和其他值作为参数传递来安装pParam。最后,在程序结束时,我会将(*pStr)参数直接复制到pParam*Param内)。但是在我写这个程序的时候,我表现出了无法完成的任务。所有结构成员都具有相同数据类型的不同参数,不能组合成数组。你能指出我做错了吗?

1 个答案:

答案 0 :(得分:1)

首先,您没有为CPS_IPOP结构内的CPS_Param指针分配内存。因此,当程序运行时,您将获得segv。

您使用的是什么编译器? Gcc编译得很好。