Tôi đang theo dõi điều này tutorial (http://theocacao.com/document.page/234). Tôi bối rối về đoạn này, chủ yếu là các dòng liên quan đến calloc:Câu hỏi hướng dẫn C liên quan đến calloc vs malloc
Chúng tôi cũng có thể sử dụng một biến thể của hàm malloc, được gọi là calloc. Hàm calloc nhận hai đối số, một giá trị đếm và kích thước giá trị cơ sở. Nó cũng xóa bộ nhớ trước khi trở về một con trỏ, đó là hữu ích trong việc tránh hành vi không thể đoán trước và đụng độ trong một số trường hợp:
Đó dòng cuối cùng bối rối cho tôi. Có nghĩa là gì để xóa bộ nhớ?
... với hệ quả là nếu * bạn * không khởi tạo đúng bộ nhớ, bạn sẽ nhận được kết quả không thể đoán trước. – dmckee
Nếu bạn cũng sẽ sử dụng 'realloc()', bạn phải đối phó với thực tế là bộ nhớ thừa không phải là zeroed - vì vậy bạn có thể cần mã khởi tạo của bạn để thực hiện công việc một cách triệt để (đủ). Rõ ràng, nếu bạn 'calloc()' bộ nhớ và sẽ không bao giờ 'realloc()' nó, thì điều này không quan trọng. –
"sẽ, bao gồm dữ liệu dường như ngẫu nhiên" - cho các giá trị nhất định của "ngẫu nhiên".Các bài kiểm tra thống kê có nhiều khả năng sẽ phân biệt nó với các mẫu liên tiếp của một biến ngẫu nhiên rời rạc phân bố đều trong phạm vi 0 ... UCHAR_MAX ;-) –