所以我有一个结构如下:阵列结构指针作为结构的第一要素
typedef struct tree tree;
struct tree {
tree* child[10];
int value;
};
和功能添加一个孩子,如下返回其地址:
tree* tree_add_child(tree* parent, int index)
{
tree* p = *(parent->child + index);
if (p == NULL)
{
p = tree_new_tree(); //malloc new tree - init it - return its address
*(parent->child + index) = p;
}
return p;
}
它的工作原理正如我想要的那样。但是我想用parent
替换所有parent->child
s,因为它们指向相同的地址,我觉得不需要额外的内存访问。但是当我这样做时,我得到一个错误,我试图将一个tree
分配给tree*
。
我怎么能这样做,还有什么其他的优化,我可以做得更快?
领先*是没有必要的,因为有我希望父母已经是尖的。你不想取消引用它的内容,你想把p指向父+索引中的地址。 –