结构体内部成员可以随时改变大小吗

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:23:20
定义一个目标状态结构体,除了表示当前时刻目标的坐标位置以及大小信息之外,还想定义一个变量来保存目标在各个时刻的坐标位置。

目标状态结构体简单表示如下:

struct STATE{

int x, y; //目标的坐标——当前时刻
int w, h; //目标的大小

//****——————在此处我想保存记录过去的每个时刻目标的坐标位置x'y',请问C/C++中可以这样定义吗?应该定义成什么类型?

};

概括起来就是说,结构体内部成员的大小可以随时改变吗?

请指教,谢谢~

#include<vector>

....

strcut STATE
{
vector<int> x,y;
}

每次更改的时候x.push_back(now_x);y.push_back(now_y);
所有的都保存了

如果你说的是结构体本身是不是可以再修改那是不行的

如果你说的是结构体中存的数值当然可以

如果你是要在结构体中,保存不定量的数据,可以在结构体中
添加指针

然后 通过动态分配内存就可以了

结构体内部成员的大小是不可以随时改变的,但是你可以在结构体内部定义一个指针,比如DWORD类型的,指向一个链表结构,这个链表结构就是可以动态变化的。

但是你要确保你能够处理好结构体和它对应的链表的关系,它们应该同时创建同时销毁,而且这些数据要拷贝的时候尤其要注意,不然很容易只把结构体拷贝了,结果就是只有指针没有数据。