Я пытался записать порядок обхода дерева в файл .txt в C. Вместо использования массивов я использую свой собственный тип данных vector для хранения значений узлов дерева. Затем я пытаюсь создать массив символов из элементов вектора. Этот процесс идет, как и ожидалось, однако, когда я печатаю массив символов на экране, он печатает 5 случайных символов в начале. Я уверен, что проблема не в векторе , а в другом месте, потому что, когда я пытаюсь напечатать символы внутри l oop, он не выводит неожиданные символы на экран (пожалуйста, см. изображение ниже). Помощь в обнаружении ошибки будет высоко оценена.
NODE* char_tree = optimised_tree(); // First Node of the tree
vector* tree_items = new_vector();
parse_tree(char_tree, tree_items); // parses the tree and add nodes to vector
int len = vec_size(tree_items); // size of the vector
char xs[len + 2];
char x[2];
for (int i = 0; i < len; ++i)
{
int o = vec_get(tree_items, i); // item at index i in vector tree_items
printf("%c ", o);
x[0] = (char)o;
x[1] = '\0';
strcat(xs, x);
}
xs[len] = '\n';
xs[len + 1] = '\0';
printf("\n-> %sSIZE %lu\n", xs, sizeof(xs));