Я определил функцию как этотстатическая переменная инициализируется с неправильным значением
static void
flatten_tree(...)
{
static int num = 0;
...
}
Однако, когда функция выполняется, num
получает случайное значение, а не 0 при первом запуске. После последующих вызовов функций он ведет себя как статический var. Являются ли статические переменные явно инициализированными нулем? Каков правильный способ его инициализации?
как вы знаете, это не инициализируется до 0? вы можете показать нам? –
Какой компилятор/версия? –
@ fernando.reyes Я изучаю это с помощью gdb. '(GDB) б flatten_tree' ' Breakpoint 2 в 0x81cd496' 'Breakpoint 2, flatten_tree (...) в ...' ' (GDB) р num' ' $ 1 = 7' – mrvn