2013-06-04 146 views
0

如何有效地初始化的HKEY阵列?初始化数组正确

考虑下面的代码片断

HKEY hkey[2]; 

for(int i = 0 ; i < 2 ; i++) 

LONG reval = RegOpenKeyEx(/* parameters */,&hkey[i]); 

RegOpenKeyEx()将填补根据我传递的参数的阵列。但是什么是初始化HKEY数组的最佳方法?我找不到任何关于相同的msdn文档。

是否足够好做HKEY hkey[2] = {0 }; ????

+2

只是{}是足以让空值。 –

回答

2

你并不需要初始化数组。您可以让RegOpenKeyEx设置值。在致电RegOpenKeyEx之前,您无需将其分配给任何人。该文档指出HKEY参数具有无语义,所以它的输入值不被使用。

您必须执行错误校验,但是,以确保您发现该功能已失败,所以不要使用未初始化的值。

它不会伤害做

HKEY hkey[2] = { NULL, NULL }; 

你打电话之前RegOpenKeyEx。但是,只要你RegOpenKeyEx进行适当的错误在电话会议上检查有没有办法,函数可以顺利完成,而不是分配给HKEY参数。