Создаю в программе элемент бинарного дерева - структуру, содержащую числовое значение, указатель на строку и указатели на родителя и сыновей. Элемент создаётся в отдельной функции new_node, в которую передаются указатель на структуру, строковое значение и число. В new_node вызываю malloc для самой структуры и для строки, копирую содержимое аргумента строки в член структуры, и обнуляю указатели на соседние узлы дерева. Для отладки создал функцию, которыя выводит адрес структуры, значения строки и число, а также адреса соседних узлов. Создал один узел. Так вот в чем проблема: если вызвать функцию отладки в самом конце new_node, она - как и надо - выведет следующее:
0x804a008 node:1 (nil):(nil):(nil)
Но если ее вызывать сразу ПОСЛЕ вызова new_node, то происходит вот это:
0x80487a0 Segmentation fault
т.е. адрес структуры ПОМЕНЯЛСЯ. Как такое может быть?