Only call realloc when needed, and check for NULL return from realloc
Fix memory leak. Consider adding a d_array_delete method to handle the freeing of memory, instead of manually doing it
Fix the hashmap_delete function
Test the hashmap