Per come e' fatta la add_last allora devi chiamarla cosi' nella add_child

codice:
int add_child(node parent, node child) {
	if ((!parent) || (!child)) return 2; //OP_GENERIC;
	int a = add_last(&parent->children, child);
	return 0;
}
... ovvero child e' gia' un puntatore, non devi passare un puntatore a puntatore ...