मैं कोड लिख रहा हूं जिसमें बहुत से2 आयामी सरणी हैं। मुझे "त्रुटि: क्षेत्र आवंटित नहीं किया जा सकता" और मुझे लगता है क्योंकि इसकी बहुत अधिक स्मृति आवंटित की गई है। मैं "malloc" और "free" फ़ंक्शंस का उपयोग करता हूं, लेकिन मुझे यकीन नहीं है कि मैं उनका उपयोग कर रहा हूं। शायद आप जानते हैं कि मैं सी में स्मृति प्रबंधन पर अच्छे उदाहरण कहां देख सकता हूं?मैं सी में मेमोरी कैसे मुक्त करूं?
तो .. मैं तो बस .. एक एल्गोरिथ्म काम प्राप्त करने की कोशिश है और अब के लिए इस कोड को समारोह के बाद सिर्फ समारोह है
//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