我有一个用数据结构实现的表。我的代码的一个重要块看起来像这样(h是数据结构,表是存储其他结构的表):
(h->table[hash(key, h->size)]
当我的代码运行时,一些表[i]将被初始化,而有些表则不会。每当我在尚未初始化的表[i]上测试我的代码时,我得到一个valgrind错误,基本上我说我无法使用未初始化的数组。
我的问题是,如何检查某个h-> table [i]是否已初始化?
答案 0 :(得分:7)
你做不到。要解决此问题,请始终在使用之前初始化结构(即使所有初始化都将结构设置为已知的“空白”/“未填充”状态)。
答案 1 :(得分:1)
当你声明你的结构用calloc或memset将它们全部设置为零时,然后比较0或NULL以检查结构是否未被使用。