不是这样的,我实在Qt下用的QList,我想做的其实是这么回事。
这个是我要用到的节点。
struct LaneListNode
{
QLabel *SafeStatus;
QLabel *LogInfo;
QLabel *CurrentCar;
QLabel *CarInfo;
QLabel *CarQuenue;
QLabel *DevStatus;
public:
void Init()
{
SafeStatus=NULL;
LogInfo=NULL;
CurrentCar=NULL;
CarQuenue=NULL;
DevStatus=NULL;
CurrentCar=NULL;
}
};
/*-----------------程序启动时会调用一个函数,函数的其中一部分是-------------------*/
for(int i=0;i<LaneNumber;i++)
{
Node.Init();
Node.CarInfo=new QLabel("");
Node.CarQuenue=new QLabel("");
Node.CurrentCar=new QLabel("");
Node.DevStatus=new QLabel("");
Node.LogInfo=new QLabel("");
Node.SafeStatus=new QLabel("");
LaneList.push_back(Node);
}
/*--------------------------------程序运行完成后我会执行这个析构函数------------*/
MainInterface::~MainInterface()
{
for(int i=0;i<LaneNumber;i++)
{
delete LaneList.at(i).CarInfo;
delete LaneList.at(i).CarQuenue;
delete LaneList.at(i).CurrentCar;
delete LaneList.at(i).DevStatus;
delete LaneList.at(i).LogInfo;
delete LaneList.at(i).SafeStatus;
}
delete ui;
}
/*-----------------为了方便我在类的头文件中定义了如下几个变量--------------------*/
QList<LaneListNode> LaneList;
LaneListNode Node;
int LaneNumber;
对于这几个变量的初始化我都已经对应的做好了。
/*-----------------现在的问题---------------------------------------------*/
我的程序运行没有问题,我是担心会不会有内存泄漏的嫌疑,因为我在头文件中只定义了一个变量,用来
进行在for循环中对链表的赋值。每次都是new出来的空间,然后进行把相应的指针指向new出来的地方,并把
节点放到链表中。在下一次循环时,我又指向新的New出来的内存,然后又加到链表中。这样一直都用这一个
节点变量进行赋值然后存在链表里面会不会有问题啊?有没有野指针的嫌疑啊?