Они и так инициализируются в NULL, потому что это глобальный массив.
//добавляем слово
//создаем переменную типа "node", и выделяем для нее память из кучи
node * new = malloc (sizeof (node));
//новый элемент структуры в поле next получает адрес текущей головы списка
new->next=hashtable[k];
//копируем в информационное поле нашей структуры считанное слово
strcpy(new->word1, word);
//делаем головой списка наш новый элемент
hashtable[k] = new;
runtime error: null pointer passed as argument 1, which is declared to never be null
/usr/include/string.h:130:14: note: nonnull attribute specified here
char word[SIZE]
while(!feof(fp))
{
fscanf(fp,"%s",word);
int k=function(word);
arr[k] = (char*)malloc(sizeof(char) * SIZE);
arr[k]=word;
}
1 ->zet
2 ->zet
3 ->zet
4 ->zet
26 ->zet
*** Error in `./tes': double free or corruption (out): 0x00007fffeebbd000 ***
Aborted
while(!feof(fp))
{
arr[k] = (char*)malloc(sizeof(char) * SIZE);
fscanf(fp,"%s",arr[k]);
k++;
}
fclose(fp);
for(int i=0; i<26; i++)
free (arr[i]);
for(int i=0; i<26; i++)
{
if (arr[i])
printf("%i ->%s\n", i+1, arr[i]);
}
1 ->abc
2 ->bcd
3 ->cde
4 ->def
5 ->zet
6 ->
7 ->
8 ->
Segmentation fault
Valgrind же мне говорит, мол вся память была освобождена - утечек нет.