-1
我想为FIR滤波器做一个C函数,它有两个输入数组和一个输出数组。 两个输入数组是常数,我想将它们用于滤波器输出的计算,并计算之后将其删除,只是存储的功能,输出数组,这是我的代码,但它不工作如何在c函数中使用malloc?
#include <stdlib.h>
float * filter(float *PATIENTSIGNAL,float *FILTERCOEF, int lengthofpatient , int lengthoffilter){
static float FIROUT[8000];
int i,j;
float temp=0;
float* SIGNAL;
float* COEF;
SIGNAL = malloc(lengthofpatient *sizeof(float));
COEF = malloc(lengthoffilter*sizeof(float));
}
for (j = 0; j <= lengthofpatient; j++){
temp = SIGNAL[j] * COEF[0];
for (i = 1; i <= lengthoffilter; i++){
if ((j - i) >= 0){
temp += SIGNAL[j - i] * COEF[i];
}
FIROUT[j] = temp;
}
}
free(SIGNAL);
free(COEF);
free(PATIENTSIGNAL);
return FIROUT;
}
当您使用临时变量时,SIGNAL和COEF被分配但未初始化。 –
'for(j = 0; j <= lengthofpatient; j ++)'这将循环一次以上。 'i'循环也是一样。 – pmg
不应该在'COEF = malloc(lengthoffilter * sizeof(float));'后面去掉'}';'因为它似乎终止了你的函数声明? – Cyclonecode