我正在寫代碼,它有很多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