c++佇列指標 結構體指標
阿新 • • 發佈:2019-02-19
#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 <<
int lenga = queue2->size();
queue2->pop();
int lenga2 = queue2->size();
cout << (*recv).size << endl;
}
結論,佇列中使用結構體指標時,指標需要分配記憶體,否則佇列裡取出來的全是最後一個結構體。