c++ - 为什么即使我们将指针分配给 NULL,指针指向的对象的大小也不为零?

标签 c++ c++11 pointers null

我想知道为什么即使我们将指针分配给 NULL,指针指向的对象的大小也不是零。有人能解释一下吗?

在 g++ 4.8,ubuntu 14.04 上编译

Foo * foo=NULL;
cout<<"Size of pointed object of foo:"<<sizeof(*foo)<<endl;  //why it is not zero

最佳答案

sizeof 是一个 compile time指示。因此,没有运行时检查来查看指针是否实际指向真实对象。根本不检查指针。该指令由编译器替换为类型的字节大小,在您的情况下为 Foo

关于c++ - 为什么即使我们将指针分配给 NULL,指针指向的对象的大小也不为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57177892/

相关文章:

c++ - 在使用指针算术时为指针数组赋值给我错误

c++ - 是什么让智能指针比普通指针更好?

java - 二进制搜索以在旋转的排序列表中找到旋转点

c++ - 在 itemDelegate 中获取当前索引模型

c++ - 了解 `std::unordered_set`的用法

c++ - std::move 在 boost 库中的对应物

c - 如何解决指针错误?

c++ - 非公共(public) C++ 继承在实践中的使用频率是多少?

c++ - 线程 C++ 中的瓶颈

C++ do while not looping