我正在使用带有 mingw GCC 编译器的 Code-Blocks 来用 C 编写我的程序。我定义了一个函数,其中输入是一个 type 的数组int
。我有另一个struct
定义为
typedef struct {
float re;
float im;
}complex_float;
我想将 int 类型数组转换为complex_float
类型数组,因为我需要处理complex_float
格式中的数据。我正在使用以下指针方法进行转换
complex_float *comSig = (complex_float *) sigbuf;
其中sigbif
是int
指向整数数组起始地址的指针。
但是当我这样做时,我会printf("%f",comSig[0].re);
得到一些垃圾值,例如-1.#QNAN0
.
我已经在 LINUX 上多次使用这种技术在数组之间进行数据转换,并且它可以工作。这是与 mingw 编译器无法正常工作有关的问题,还是与我使用不正确的方法将 int 数组转换为 struct 数组的事实有关。