Полагаю, я мог бы просто использовать список, но на данный момент мне просто любопытно, почему не работает следующий код:
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 tree [nOS], но я работаю с неизвестным количеством элементов, поэтому мне нужно возможность использовать realloc, следовательно, использовать malloc:
for (int i = 0; i < nOS; i++) {
treeList.push_back(tree[i]);
}
Я пробовал приводить tree [i] к различным вещам: (treeNode), (const treeNode), но я не могу понять, как заставить его работать. Спасибо!