我在处理2d数组时遇到代码中的分段错误..无法到达我的错误所在的地方..感谢任何帮助
这是我的代码
void main()
{
float32_t buff1d_1[64],buff1d_2[64];
float32_t buff2d_1[3][64],buff2d_2[3][64];
fn1(&buff2d_1[0],buff1d_1,buff1d_2,&buff2d_2[0]);
}
void fn1(float32_t** in1,float32_t* out1,float32_t* out2, float32_t** in2)
{
float32_t trim[3]={0};
fn2(trim,in1,out1,in2);
}
fn2声明
fn2(float32_t *,float32_t **inputs,float32_t *output, float32_t **coe);
功能的优先级是fn2> fn1>主要。 这就是fn2的声明是固定的,我必须相应地改变来自main的fn1和fn1调用的声明。
答案 0 :(得分:2)
&buff2d_1[0]
和&buff2d_2[0]
的类型为float32_t (*)[64]
,但函数fn1
需要float32_t**
类型的第一个和第四个参数。
将函数声明符更改为
void fn1(float32_t (*in1)[64],float32_t* out1,float32_t* out2, float32_t (*in2)[64])