尝试访问和写入结构成员后程序崩溃
Program crash after trying to access and write to structure member
在 C 中 Visual Studio 工作并尝试对一些示例进行 fft
。
当我尝试向结构体成员写入一些值时,我的程序崩溃了,并且出现错误访问冲突写入位置 0x00000000.
首先,我尝试使用 this C 代码,但出现错误:
kiss_fft_cpx *cx_in = new kiss_fft_cpx[nfft];
kiss_fft_cpx *cx_out = new kiss_fft_cpx[nfft];
这两行。好的,C 中没有新内容。我试图修改它,但我做不到。我试过了
kiss_fft_cpx *cx_in[1024];
kiss_fft_cpx *cx_out[1024];
在我尝试用
传递一些值后几行
cx_in[brojac]->r = i; // this is where program breaks
cx_in[brojac]->i = q;
来自 kiss_fft.h
头文件
typedef struct {
kiss_fft_scalar r;
kiss_fft_scalar i;
} kiss_fft_cpx;
typedef struct kiss_fft_state* kiss_f;
//beginning of main
kiss_fft_cpx *cx_in[1024];
kiss_fft_cpx *cx_out[1024];
//after doing some sampling
cx_in[brojac]->r = i; // this is where program crash
cx_in[brojac]->i = q;
cx_in
和 cx_out
只是指向结构数组的指针。你需要分配内存。
kiss_fft_cpx *cx_in = malloc(1024*sizeof(kiss_fft_cpx));
kiss_fft_cpx *cx_out = malloc(1024*sizeof(kiss_fft_cpx));
kiss_fft_cpx *cx_in = new kiss_fft_cpx[nfft];
在 C++ 中,这将分配一个结构数组。 C中的类似部分是
struct kiss_fft_cpx *cx_in = malloc(nfft * sizeof(struct kiss_fft_cpx));
您可以将其用作
cx_in[brojac].r = i; // where 0 <= brojac < nfft
在 C 中 Visual Studio 工作并尝试对一些示例进行 fft
。
当我尝试向结构体成员写入一些值时,我的程序崩溃了,并且出现错误访问冲突写入位置 0x00000000.
首先,我尝试使用 this C 代码,但出现错误:
kiss_fft_cpx *cx_in = new kiss_fft_cpx[nfft];
kiss_fft_cpx *cx_out = new kiss_fft_cpx[nfft];
这两行。好的,C 中没有新内容。我试图修改它,但我做不到。我试过了
kiss_fft_cpx *cx_in[1024];
kiss_fft_cpx *cx_out[1024];
在我尝试用
传递一些值后几行cx_in[brojac]->r = i; // this is where program breaks
cx_in[brojac]->i = q;
来自 kiss_fft.h
头文件
typedef struct {
kiss_fft_scalar r;
kiss_fft_scalar i;
} kiss_fft_cpx;
typedef struct kiss_fft_state* kiss_f;
//beginning of main
kiss_fft_cpx *cx_in[1024];
kiss_fft_cpx *cx_out[1024];
//after doing some sampling
cx_in[brojac]->r = i; // this is where program crash
cx_in[brojac]->i = q;
cx_in
和 cx_out
只是指向结构数组的指针。你需要分配内存。
kiss_fft_cpx *cx_in = malloc(1024*sizeof(kiss_fft_cpx));
kiss_fft_cpx *cx_out = malloc(1024*sizeof(kiss_fft_cpx));
kiss_fft_cpx *cx_in = new kiss_fft_cpx[nfft];
在 C++ 中,这将分配一个结构数组。 C中的类似部分是
struct kiss_fft_cpx *cx_in = malloc(nfft * sizeof(struct kiss_fft_cpx));
您可以将其用作
cx_in[brojac].r = i; // where 0 <= brojac < nfft