Tôi đã đọc với sự quan tâm của bài đăng C difference between malloc and calloc. Tôi đang sử dụng malloc trong mã của tôi và muốn biết những gì khác biệt tôi sẽ có bằng cách sử dụng calloc thay thế.calloc v/s malloc và hiệu quả thời gian
hiện (giả) Mã của tôi với malloc:
Kịch bản 1
int main()
{
allocate large arrays with malloc
INITIALIZE ALL ARRAY ELEMENTS TO ZERO
for loop //say 1000 times
do something and write results to arrays
end for loop
FREE ARRAYS with free command
} //end main
Nếu tôi sử dụng calloc thay vì malloc, sau đó tôi sẽ có:
Scenario2
int main()
{
for loop //say 1000 times
ALLOCATION OF ARRAYS WITH CALLOC
do something and write results to arrays
FREE ARRAYS with free command
end for loop
} //end main
Tôi có ba câu hỏi:
Kịch bản nào hiệu quả hơn nếu mảng rất lớn?
Kịch bản nào sẽ hiệu quả hơn nếu các mảng rất lớn?
Trong cả hai trường hợp, tôi chỉ ghi vào mảng theo nghĩa cho bất kỳ lần lặp nào đã cho trong vòng lặp for, tôi viết từng mảng tuần tự từ phần tử đầu tiên đến phần tử cuối cùng. Câu hỏi quan trọng: Nếu tôi đang sử dụng malloc như trong kịch bản 1, thì tôi có cần khởi tạo các phần tử bằng không? Nói với malloc tôi có mảng z = [garbage1, garbage2, garbage 3]. Đối với mỗi lần lặp, tôi đang viết các phần tử tuần tự, tức là trong lần lặp đầu tiên tôi nhận được z = [some_result, garbage2, garbage3], trong lần lặp thứ hai tôi nhận được trong lần lặp đầu tiên, tôi nhận z = [some_result, another_result, garbage3] và trên, sau đó tôi cần đặc biệt để khởi tạo mảng của tôi sau khi malloc?
trùng lặp có thể xảy ra http://stackoverflow.com/questions/1538420/c-difference-between-malloc-and-calloc –
Vâng, đây là lý do tại sao tôi đã đề cập rằng tôi đọc bài đăng khác. Tôi muốn cụ thể hơn một chút ở đây. – yCalleecharan
Bạn đã tự đo nó chưa? Kết quả trên máy của bạn là gì? – Secure