Извините, новичок уровень этого вопроса. У меня есть следующий простой код, но он не работает. Он получает ошибку сегментации. Если я заменю указатель простым вызовом фактической переменной, он будет работать нормально ... Я не уверен, почему.Почему этот простой код hello world segfaulting?
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;
}
Что не так с этим кодом?
Так что я должен префикс его с какой-то инициализацией? struct node * root = new (struct node); или что-то? – socks
В этом конкретном случае я бы назвал «корневой узел узла» вместо указателя, а затем использовал 'root.x' и передал' & root' функции, которые ожидают указателя. Не всегда оправданно динамическое хранилище. –