将短裤数组转换为双精度数组

如何在C / C ++中将short类型的数组转换为double类型的数组?

我有代码从wav文件中读取音频数据,输出是short类型的数组。 所以现在我想将这些数据用于FFT(我不想使用库)。

任何技巧或想法?

你不能转换数组; 但是,您可以使用转换后的值创建一个新数组:

#include  #include  short src[10] = ...; double dst[sizeof(src)/sizeof(short)]; std::copy(std::begin(src), std::end(src), dst); // generic, C++11 std::copy(src, src + 10, dst); // a bit more hackish 

更好的是使用std::array src; 等等

如果您的“数组”实际上是动态数据结构,那么它变得更加容易:

 std::vector src = ... ; std::vector dst(src.begin(), src.end());