在Dev-C ++中编译时,我的代码出现此错误。
错误是:[错误]字符数组的初始化字符串太长[-fpermissive]
部分代码是:
struct ffthdr {
char fftc[4]; // .fft
long fftsize; // fft size
long windowsize; // windowsize (<= fftsize)
long hopsize; // hop size (<=fftsize)
long dlength; // original file data length in samples
long srate; // original file sample rate
long winType; // window type
};
void rfft(float *x, long N, int forward);
void cfft(float *x, long NC, int forward);
void bitreverse(float *x, long N);
int makewindow(int aType, float *win, long length);
int dowindow(float *fdata, float *window, long length);
int main(int argc, char *argv[]) {
float *result,*tempres=0,*window=0;
short *data;
float max,norm=1.0;
long i,time,fsize=1024,wsize=512,hsize=256,nread;
int wavein;
long length,srate,winType=1;
FILE *input, *output;
struct soundhdr hdr;
struct ffthdr fhdr = {".fft",1024,512,256,0,0,1};
错误出现在最后一行。
感谢。
答案 0 :(得分:1)
这是因为你的字符数组的初始化字符串太长了
此
".fft"
长度为5个字符(包括NUL)
你只分配了4:
char fftc[4]; // .fft
如果您真的想要这四个字符而不是NUL,请尝试
struct ffthdr fhdr = {{'.','f','f','t'},1024,512,256,0,0,1};