首页 > 解决方案 > 类自己的指针指向的数组的大小是多少?

问题描述

class Size_of_dataVariable
{
public:
     int array[50];
};

现在,如果我使用指针为此类创建一个对象,例如

Size_of_dataVariable *point = new Size_of_dataVariable;

Size_of_dataVariable并尝试使用来获取类的数据成员的大小

sizeof(point->array)

那么它会打印200,还是指针的大小?

标签: c++

解决方案


50 和指针的大小都不正确。 point->array是固定数组,不是指针。虽然指针和数组之间存在关系,但它们并不相同。

由于point->array是一个固定数组,因此sizeof在其上使用运算符将​​为您提供完整数组的大小(以字节为单位),特别是50 * sizeof(int).

因此,假设 anint的大小为 4 个字节,则为sizeof(point->array)200。


推荐阅读