Как проверить, инициализирована ли структура?

У меня есть таблица, которую я реализую с структурами данных. Важный блок моего кода выглядит так (h - структура данных, таблица - таблица, в которой хранятся другие структуры):

(h->table[hash(key, h->size)]

Пока мой код запущен, некоторая таблица [i] будет инициализирована, а некоторые - нет. Всякий раз, когда я проверяю свой код на таблице [i], которая еще не была инициализирована, я получаю ошибку valgrind, которая в основном говорит, что я не могу работать с неинициализированным массивом.

Мой вопрос: как я могу проверить, инициализирована ли определенная h- > таблица [i] или нет?

Ответ 1

Вы не можете. Чтобы исправить эту проблему, всегда инициализируйте структуру перед ее использованием (даже если вся инициализация выполняется, устанавливается структура в известное состояние "пустое" / "не заполненное" ).

Ответ 2

Когда вы объявляете, что ваши структуры устанавливают их все на ноль с помощью calloc или memset, затем сравнивайте с 0 или NULL, чтобы проверить, не используется ли структура.