如何检查结构是否已初始化?

我有一个表,我正在实现数据结构。 我的代码的一个重要块看起来像这样(h是数据结构,表是存储其他结构的表):

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

当我的代码运行时,一些table [i]将被初始化,而有些则不会。 每当我在尚未初始化的表[i]上测试我的代码时,我得到一个valgrind错误,基本上我说我无法使用未初始化的数组。

我的问题是,我如何检查某个h-> table [i]是否已初始化?

你不能。 要解决此问题,请始终在使用之前初始化结构(即使所有初始化都将结构设置为已知的“空白”/“未填充”状态)。

声明结构时,使用calloc或memset将它们全部设置为零,然后比较0或NULL以检查结构是否未使用。