Ich brauche einen Knoten, um auf mehrere Kinder (ich weiß nicht, wie viele von denen ich zur Zeit der Kompilierung) zeigen.
vorläufig brauche ich nur den Vaterknoten, um auf mindestens ein Kind zu zeigen.
aber es zeigt auf '0', was habe ich verpasst?
hier ist mein CodeVerwenden Sie ein Array von Knoten Zeigern, um auf ein Kind eines Knotens
#include <bits/stdc++.h>
using namespace std;
string tokens[10];
typedef struct node
{
char* value;
node* children[10]={NULL};
}node;
void connect(node* father,node* child)
{
// child = (node*) malloc(sizeof(node*));
if(father->children[0]!=NULL)
father->children[0]=child;
cout<<father->children[0]<<endl;
}
int main()
{
node* father_ = (node*) malloc(sizeof(node*));
node* child_ = (node*) malloc(sizeof(node*));
cout<<"before\n";
connect(father_,child_);
cout<<"after\n";
father_->children[0]->value="a";
cout<<child_->value;
}
http://stackoverflow.com/questions/31816095/why-should-i-not-include-bits-stdc-h –
Sie wollten 'sizeof (node)' nicht 'sizeof (node *)' verwenden. –
Ich wollte eine Antwort auf Ihre Frage schreiben, aber es würde nur Kapitel aus jedem C++ Buch zitieren. Versuchen Sie in C++ nach dynamischer Speicherzuordnung zu suchen; Konstruktoren, Destruktoren und RAII; verknüpfte Listen- und Datenstrukturen. – teivaz