I have this function "load" where I read words from a dictionary and put them in an hashtable of linked lists. When I try to read a line and save it in my new_node->text the compiler returns SEGMENTATION FAULT and I don't know why. The error apperars when I use strncpy.
#define HASHTABLE_SIZE 76801
typedef struct node
{
        char text[LENGTH+1];
        //char* text;
        //link to the next word
        struct node* next_word;
}
node;
    node* hashtable[HASHTABLE_SIZE];
    bool load(const char* dictionary)
    {
        FILE* file = fopen(dictionary,"r");
        unsigned long index = 0;
        char str[LENGTH+1];
        if(file == NULL)
        {
            printf("Error opening file!");
            return false;
        }
        while(! feof(file))
        {
            node * new_node = malloc(sizeof(node)+1000);
            while( fscanf(file,"%s",str) > 0)
            {
                printf("The word is %s",str);
                strncpy(new_node->text,str,LENGTH+1);
                //strcpy(new_node->text,str);
                new_node->next_word = NULL;
                index = hash( (unsigned char*)new_node->text);
                if(hashtable[index] == NULL)
                {
                    hashtable[index] = new_node;
                }
                else
                {
                    new_node->next_word =  hashtable[index];
                    hashtable[index] = new_node;
                }
                n_words++;
            }
            //free(new_node);
        }
        fclose(file);
        loaded = true;
        return true;    
    }
 
     
     
    