Tôi đang viết mã có rất nhiều mảng 1 chiều là 1 & 2 chiều. Tôi đã nhận "lỗi: không thể phân bổ khu vực" và tôi nghĩ rằng nó bởi vì quá nhiều bộ nhớ được phân bổ. Tôi sử dụng chức năng "malloc" và "miễn phí", nhưng tôi không chắc chắn rằng tôi đang sử dụng chúng một cách đúng đắn. Có lẽ bạn biết nơi tôi có thể nhìn thấy ví dụ tốt về quản lý bộ nhớ trong C?Làm cách nào để giải phóng bộ nhớ trong C?
như vậy .. Tôi chỉ cố gắng để có được một công việc và thuật toán cho bây giờ mã này chỉ là chức năng sau khi chức năng ..
//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);
...............
Làm thế nào tôi nên sử dụng free
chức năng?
Có lẽ nó sẽ mang tính xây dựng hơn để cho chúng ta thấy những gì bạn đã cố gắng? – cnicutar
hiển thị mã của bạn. – Pheonix
bạn nên cung cấp ví dụ về những gì bạn làm. nếu không câu hỏi của bạn chỉ là quá chung chung để trả lời ngoài: đọc các thông số kỹ thuật. – akira