我正在使用 FRDM-KL25Z 板来测量振动的 C++ 项目。我的代码正在运行,但我需要它在循环中运行。我的内存有问题,我没有足够的空间来存储两次值。我使用了 free() 命令,但即使我什么都没有,也无法恢复我的所有记忆。有人知道如何清理kiss-fft使用的所有内存吗?它没有免费功能,或者在列表中它所拥有的功能无法正常工作。
我有足够的内存只运行一次并显示结果。我试图用这个函数做一个循环,但即使使用免费命令,我也无法恢复我的初始记忆。
{
void TestFftReal(const char* title, const kiss_fft_scalar in[L], kiss_fft_cpx out[L / 2 + 1])
kiss_fftr_cfg cfg;
cfg = kiss_fftr_alloc(L, 0/*is_inverse_fft*/, NULL, NULL);
if (cfg != NULL) {
size_t i;
kiss_fftr(cfg, in, out);
free(cfg);
/// Do stuff ///
} else {
printf("Not enough memory.\n");
exit(-1);
}
}