内存分配的问题

我定义一个:

typedef struct Point
{
    uint x;
    uint y;
    uchar value;
    uchar U;
} Point;
typedef struct Matrix
{
    int Num;
    Point* point;

} Matrix;

然后

Matrix matrix;

sizeof(matrix);

matrix.point = new Point[2];

然后sizeof(matrix);

前后大小一致,也就是说,我自始至终都无法准确的标识一个对象的长度。也可以这么理解,他的对象里面的长度在另一个对象里面。两者没有什么关系。

还有就是,你在构造函数中,构造函数中只能唯一填一个常量,不能填写变量。这点需注意。

所以,我们无法通过动态开辟数组的形式唯一标识一个对象的长度。

原文地址:https://www.cnblogs.com/zhuxuekui/p/3517263.html