我正在写代码,它有很多2维数组。我得到了“错误:无法分配区域”,我认为它是因为分配的内存太多。我使用“malloc”和“free”函数,但我不确定我是否正确使用它们。也许你知道我在哪里可以看到有关C语言内存管理的好例子?如何在C中释放内存?
所以..我只是试图让一个算法的工作,现在这个代码功能后,只是功能..
//memory allocation for 1D arrays
buffer = malloc(num_items*sizeof(double));
//memory allocation for 2D arrays
double **cross_norm=(double**)malloc(150 * sizeof(double *));
for(i=0; i<150;i++)
{
cross_norm[i]=(double*)malloc(num_items*sizeof(double));
}
//code
Window(N, window_buffer);
STFTforBMP(buffer,N,f, window_buffer);
getMagnitude(buffer,f, N, magnitude);
calculateEnergy(flux,magnitude, f);
calculateExpectedEnergy(expected_flux, candidate_beat_period, downbeat_location, f);
calculateCrossCorrelation(cross, flux, expected_values, f);
findLargestCrossCorrelation(&cross_max, cross, f);
normalizeCrossCorrelation(cross_norm, &cross_max, cross, f);
...............
我应该如何使用free
功能?
也许这将是更有建设性的向我们展示你尝试过什么? – cnicutar 2012-01-30 18:59:45
显示您的代码。 – Pheonix 2012-01-30 19:00:06
你应该提供你做什么的例子。否则你的问题太笼统了,无法回答:阅读规格。 – akira 2012-01-30 19:00:41