我想我可以只使用一個列表然而,在這一點上,我只是好奇,爲什麼下面的代碼不工作:推元素數組++一個std ::列表用C
struct treeNode{
char symbol;
double freq;
int left;
int right;
};
treeNode *tree;
int nOS = 16;
tree = (treeNode *)malloc(sizeof(treeNode) * nOS);
list<treeNode> treeList;
後初始化樹中的所有元素我嘗試將它們推送到treeList並得到分段錯誤,如果tree是treeNode樹[nOS],則不會發生,但我正在使用未知數量的元素,因此我需要能夠使用realloc ,因此使用malloc:
for (int i = 0; i < nOS; i++) {
treeList.push_back(tree[i]);
}
我試着將樹[i]投到各種數量的th ings:(treeNode),(const treeNode)但我無法弄清楚如何讓它工作。謝謝!
爲什麼malloc的?爲什麼不使用矢量?或另一個列表?什麼是symbolList? – 2011-05-28 10:22:44
好吧,我在開頭說我知道我可以使用一個列表,但我很好奇,爲什麼這不起作用,以便進一步瞭解malloc,列表,c/C++等。 – MCH 2011-05-28 10:24:51
行,但什麼是symbolList - 你的意思是treeList? – 2011-05-28 10:28:43