我正在使用代码:: 块,当我编译这个程序时它没有显示任何错误,但是当我运行它时它说卷积.exe 已停止工作(即,我将其保存为卷积.c),我不知道发生了什么事,谁能帮我解决这个问题,我的代码如下
#include<stdio.h>
#include<stdlib.h>
#define array_len(x) (sizeof(x)/sizeof(double))
void convolution(double *signal, int nt, double *wind, int r, double *rm)
{
int i,j;
double copy[nt];
for(i=0; i<nt; i++)
{
copy[i] = signal[i];
}
int l = (nt+r-1);
for(i=r;i<=l;i++)
{
wind[i]=0;
}
for(i=nt;i<=l;i++)
{
copy[i]=0;
}
for(i=0;i<=l;i++)
{
rm[i]=0;
for(j=0;j<=i;j++)
{
rm[i] = (rm[i]+(copy[j]*wind[i-j]) );
}
}
}
void main()
{
double a[1020];
int i;
for(i=0; i<1020; i++)
{
a[i] = 1;
}
int la = array_len(a);
printf("\nc1\t%d",la);
double b[1020];
for(i=0; i<1020; i++)
{
b[i] = 1;
}
int lb = array_len(b);
printf("\nc2\t%d\n",lb);
double r[la+lb-1];
int lr = array_len(r);
printf("\nc3\t%d\n",lr);
printf("entering convolution\n");
convolution(a,la,b,lb,r);
printf("in main\n\n");
for(i=0;i<(50);i++)
{
printf("rm[%d]=%lf\n",i,r[i]);
}
}