Đặt con trỏ về NULLsau freelà một thực tiễn đáng ngờ thường được phổ biến như một quy tắc "lập trình tốt" trên một tiền đề sai lầm rõ ràng. Đó là một trong những sự thật giả thuộc về loại "âm thanh đúng" nhưng trong thực tế đạt được hoàn toàn không có gì hữu ích (và đôi khi dẫn đến hậu quả tiêu cực).
Bị cáo buộc, đặt một con trỏ thành NULLsau freeđược cho là để ngăn chặn vấn đề "gấp đôi miễn phí" đáng sợ khi cùng một giá trị con trỏ được truyền đến freenhiều lần. Tuy nhiên, trong thực tế, trong 9 trường hợp, 10 vấn đề thực sự "miễn phí kép" xảy ra khi các đối tượng con trỏ khác nhau có cùng giá trị con trỏ được sử dụng làm đối số cho free. Không cần phải nói, thiết lập một con trỏ đến NULLsau khi freeđạt được hoàn toàn không có gì để ngăn chặn vấn đề trong những trường hợp như vậy.
Tất nhiên, có thể gặp vấn đề "nhân đôi miễn phí" khi sử dụng cùng một đối tượng con trỏ làm đối số free. Tuy nhiên, trong các tình huống thực tế như thế thường chỉ ra một vấn đề với cấu trúc logic chung của mã, chứ không phải là "miễn phí kép" ngẫu nhiên. Một cách thích hợp để xử lý vấn đề trong các trường hợp như vậy là xem xét và suy nghĩ lại về cấu trúc của mã để tránh tình huống khi cùng một con trỏ được truyền đến freenhiều lần. Trong những trường hợp như vậy, đặt con trỏ đến NULLvà xem xét vấn đề "đã sửa" không gì khác hơn là một nỗ lực để quét vấn đề dưới thảm. Nó chỉ đơn giản là không hoạt động trong trường hợp chung, bởi vì vấn đề với cấu trúc mã sẽ luôn tìm cách khác để tự thể hiện.
Cuối cùng, nếu mã của bạn được thiết kế đặc biệt để dựa vào giá trị con trỏ là NULLhay không NULL, việc đặt giá trị con trỏ thành NULLsau là hoàn toàn tốt free. Nhưng như một quy tắc "thực hành tốt" chung (như trong "luôn đặt con trỏ của bạn thành NULLsau free"), một lần nữa, nó là một giả mạo nổi tiếng và khá vô dụng, thường được theo sau bởi một số lý do hoàn toàn tôn giáo, giống như tôn giáo.
ptr == NULLtrước khi làm bất cứ điều gì với nó. Nếu bạn không vô hiệu hóa các con trỏ miễn phí của mình, bạn vẫn nhận đượcptr != NULLnhưng con trỏ vẫn không sử dụng được.