In this code tableis a pointer to a pointer to a HashEntry
HashEntry **table;
The general rule is to start with the name of the variable and the main type, turn right as much as possible, then go left, see this great description
http://unixwiz.net/techtips/reading-cdecl.html
, table HashEntry, . , "C", struct, ++ HashEntry "C".
table is ... HashEntry
table, , "*", :
table is pointer to ... HashEntry
"*",
table is pointer to pointer to HashEntry
... .
, , table , , . , ++, C, "" , . "" , , .
, , , :
HashEntry * table[];
, ,
table is undimensioned array of pointer to HashEntry
, ( 0), " " . . SO .
?