Я пишу код, который содержит много 1 и 2 мерных массивов. Я получил "ошибку: не могу выделить регион", и я думаю, потому что слишком много памяти выделено. Я использую функции "malloc" и "free", но я не уверен, что я использую их для корреляции. Может быть, вы знаете, где я могу видеть хорошие примеры управления памятью в 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
функцию?