Entschuldigen Sie die Anfängerstufe dieser Frage. Ich habe den folgenden einfachen Code, aber es scheint nicht zu laufen. Es wird ein Segmentierungsfehler angezeigt. Wenn ich den Zeiger durch einen einfachen Aufruf der tatsächlichen Variable ersetze, läuft es gut ... Ich weiß nicht warum.Warum ist dieser einfache Hallo Weltcode segfauling?
struct node
{
int x;
struct node *left;
struct node *right;
};
int main()
{
struct node *root;
root->x = 42;
printf("Hello world. %d", root->x);
getchar();
return 0;
}
Was ist falsch an diesem Code?
Also sollte ich es mit einer Art von Initialisierung voranstellen? Strukturknoten * root = new (Strukturknoten); oder so? – socks
In diesem speziellen Fall würde ich einen "struct node root" anstelle eines Zeigers deklarieren und dann 'root.x' verwenden und' & root' an Funktionen übergeben, die einen Zeiger erwarten. Nicht immer ist dynamischer Speicher gerechtfertigt. –