与2 dimn数组相关的分段故障

时间:2015-12-16 10:20:35

标签: c

我在处理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调用的声明。

1 个答案:

答案 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])