2013-06-04 187 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參數。