1. 程式人生 > >c++佇列指標 結構體指標

c++佇列指標 結構體指標

#include<iostream>

#include<queue>

#include<map>

#include<string>

#include<mutex>

//#include <Windows.h>

usingnamespace std;

queue<RevData*> queue1;

queue<RevData*>* queue2;

//queue2 = (queue<RevData*>*)malloc(sizeof(queue<RevData*>));

for (int i = 0; i < 10; i++) {

RevData recvD;

recvD.size = i;

strcpy(recvD.data, "hello");

RevData* recvp = (RevData*)malloc(sizeof(RevData));

memcpy(recvp, &recvD, sizeof(RevData));

queue1.push(recvp);// recvp);

//queue1.push(&recvD);

}

queue2 = &queue1;

for (int i = 0; i < 10; i++) {

RevData* recv = queue2->front();

cout <<

 (*recv).data << endl;

int lenga = queue2->size();

queue2->pop();

int lenga2 = queue2->size();

cout << (*recv).size << endl;

}

結論,佇列中使用結構體指標時,指標需要分配記憶體,否則佇列裡取出來的全是最後一個結構體。