Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何检查结构是否已初始化?_C_Arrays_Data Structures_Initialization - Fatal编程技术网

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

C 如何检查结构是否已初始化?,c,arrays,data-structures,initialization,C,Arrays,Data Structures,Initialization,我有一个用数据结构实现的表。我的代码的一个重要部分如下所示(h是一个数据结构,table是一个存储其他结构的表): 当我的代码运行时,一些表[i]将被初始化,而一些表[i]则没有初始化。每当我在一个尚未初始化的表[I]上测试代码时,我会得到一个valgrind错误,基本上说我不能使用未初始化的数组 我的问题是,如何检查某个h->table[I]是否已初始化?您不能。若要解决此问题,请始终在使用结构之前对其进行初始化(即使所有初始化操作都是将结构设置为已知的“空白”/“未填充”状态)。当您声明结构

我有一个用数据结构实现的表。我的代码的一个重要部分如下所示(h是一个数据结构,table是一个存储其他结构的表):

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


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

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

当您声明结构时,请使用calloc或memset将其全部设置为零,然后稍后将其与0或NULL进行比较,以检查是否未使用该结构。

+1
calloc()
对于普通的init分配,我会想到,根据这些指针判断,如果使用得当,可能会有所帮助。+1表示真相和措辞“…”blank“/”not populated“state…”,因为这很可能与所有零不同!
(h->table[hash(key, h->size)]