我正在使用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
内)。但是在我写这个程序的时候,我表现出了无法完成的任务。所有结构成员都具有相同数据类型的不同参数,不能组合成数组。你能指出我做错了吗?
答案 0 :(得分:1)
首先,您没有为CPS_IPOP结构内的CPS_Param指针分配内存。因此,当程序运行时,您将获得segv。
您使用的是什么编译器? Gcc编译得很好。