Ответ 1
Вы не можете. Чтобы исправить эту проблему, всегда инициализируйте структуру перед ее использованием (даже если вся инициализация выполняется, устанавливается структура в известное состояние "пустое" / "не заполненное" ).
У меня есть таблица, которую я реализую с структурами данных. Важный блок моего кода выглядит так (h - структура данных, таблица - таблица, в которой хранятся другие структуры):
(h->table[hash(key, h->size)]
Пока мой код запущен, некоторая таблица [i] будет инициализирована, а некоторые - нет. Всякий раз, когда я проверяю свой код на таблице [i], которая еще не была инициализирована, я получаю ошибку valgrind, которая в основном говорит, что я не могу работать с неинициализированным массивом.
Мой вопрос: как я могу проверить, инициализирована ли определенная h- > таблица [i] или нет?
Вы не можете. Чтобы исправить эту проблему, всегда инициализируйте структуру перед ее использованием (даже если вся инициализация выполняется, устанавливается структура в известное состояние "пустое" / "не заполненное" ).
Когда вы объявляете, что ваши структуры устанавливают их все на ноль с помощью calloc или memset, затем сравнивайте с 0 или NULL, чтобы проверить, не используется ли структура.