Jun 18, 2012

[Hỏi ngu]: Sự khác nhau giữa Null pointer và void pointer


Tập hợp những câu hỏi mà đôi lúc mình ngộ ra là mình đã hỏi rất ngu =)) .
Null pointer là một giá trị của con trỏ. Con trỏ có nhiều kiểu (int*, char*) và mỗi kiểu đó sẽ qui định giá trị null khác nhau: NULL có thể là 0, cũng có thể là '\0' …
Void pointer là một kiểu - kiểu void* - con trỏ này có thể trỏ đến bất kì kiểu nào.
Vậy nên: Null pointer là một giá trị, còn void pointer là một kiểu con trỏ:
Example:
Void *pa = NULL;
Một tham khảo khác:
Thông thường một null pointer trỏ đến:
  • Địa chỉ 0.
  • Trỏ đến địa chỉ không hợp lệ  cho người dùng truy cập ( như địa chỉ 0x00000000 …), nếu cố truy cập dữ liệu vào địa chỉ này sẽ gây ra lỗi.