I'm writing a hash class:
struct hashmap {
void insert(const char* key, const char* value);
char* search(const char* key);
private:
unsigned int hash(const char* s);
hashnode* table_[SIZE]; // <--
};
As insert() need to check if table[i] is empty when inserting a new pair, so I need all pointers in the table set to NULL at start up.
My question is, will this pointer array table_
be automatically initialized to zero, or I should manually use a loop to set the array to zero in the constructor?
The
table_
array will be uninitialized in your current design, just like if you sayint n;
. However, you can value-initialize the array (and thus zero-initialize each member) in the constructor:You have to set all pointers to NULL. You do not have to use a loop, you can call in the contructor :