나는 진동을 측정하기 위해 FRDM-KL25Z 보드를 사용하는 C++ 프로젝트에서 일하고 있습니다. 내 코드가 작동하지만 루프에서 실행해야합니다. 메모리에 문제가 있습니다. 값을 두 번 저장할 수있는 충분한 공간이 없습니다. 나는 free() 명령어를 사용했지만, 심지어 나는 내 기억을 되 찾을 수 없다. 누군가가 kiss-fft가 사용하는 모든 메모리를 청소하는 방법을 알고 있습니까? 무료 함수가 없거나 목록에있는 함수가 제대로 작동하지 않습니다.키스 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);
}
}
"내 기억이 돌아 오지 않을 것"이외에 더 많은 정보를 제공해야 할 것입니다. 문제를 설명하는 데 도움이되는 코드 스 니펫 (전체 코드베이스가 아닌 관련 부분 만)이 있습니까? FFT를 수행 할 수있는 충분한 공간을 어떻게 확보 할 수 있습니까? 기타 ... – Ross