2 차원 배열이 1 & 인 코드를 작성하고 있습니다. "오류 : 영역을 할당 할 수 없습니다"라는 메시지가 표시되며 너무 많은 메모리가 할당되어 있기 때문에 문제가 발생한다고 생각합니다. 나는 "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
코드를 보여주십시오. – Pheonix
당신이하는 일의 예를 제시해야합니다. 그렇지 않으면 당신의 질문은 지나치게 대답하기에는 너무 일반적입니다 : 사양을 읽으십시오. – akira