Estoy escribiendo el código que tiene un montón de 1 & 2 matrices dimensionales. Obtuve "error: no puedo asignar región" y creo que es porque se asigna demasiada memoria. Uso las funciones "malloc" y "free", pero no estoy seguro de que las esté usando correclyt. ¿Quizás sabes dónde puedo ver buenos ejemplos sobre la gestión de la memoria en C?¿Cómo puedo liberar memoria en C?
así .. Yo sólo estaba tratando de conseguir una obra algoritmo y por ahora este código es simplemente la función después de la función ..
//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);
...............
¿Cómo debo usar la función free
?
Tal vez sería más constructivo que nos muestre lo que ha intentado? – cnicutar
muestra tu código. – Pheonix
debe proporcionar ejemplos de lo que hace. de lo contrario, su pregunta es demasiado general para responder más allá: lea las especificaciones. – akira