Для строки
if(hashtable[y] != NULL)
Вы не инициализируете hashtable
ни для какого значения, и оно также объявляется как локальная переменная.Начальное значение должно быть некоторым значением мусора.Таким образом, вы не можете предполагать, что если hashtable[y]
будет NULL
для всех 1000 элементов массива.
Вы можете инициализировать структуру до нуля при объявлении, например,
hashmap_t hashtable[1000] = {0};
или можетеобъявить его как глобальную переменную.