I won't even say how long I have been working on pset5, its embarrassing. But I have now at least got code written which I am sure is going to have a lot of mistakes. Problem is I can't even run GDB on the speller file to debug. I keep getting the following error message >(gdb) run ~cs50/pset5/texts/austinpowers.txt >Starting program: /home/ubuntu/workspace/pset5/speller >~cs50/pset5/texts/austinpowers.txt > >Program received signal SIGSEGV, Segmentation fault. >0x000000000040142f in load (dictionary=0x401622 "dictionaries/large") at >dictionary.c:115 >115 hashtable[hashy(new_node->word)] = new_node; >(gdb) This is my load function that contains the offending line (115). Can anyone give some guidance as to what the error might be so I can at least get to a point where I can run GDB. Many Thanks. bool load(const char* dictionary) { //initialise hashtable to NULL for (int i = 0; i < 27; i++) { hashtable[i] = NULL; } // open dictionary file and read it FILE* dic = fopen(dictionary, "r"); //if empty return false if (dic == NULL) { printf("Failed to load dictionary.\n"); return false; } else { //continue until end of file reached while(!feof(dic)) { //build a new node node* new_node = malloc(sizeof(node)); //read in the words from the dictionary fscanf(dic, "%s", new_node -> word); count++; //put word through hash function to get index for the array index = hashy(new_node-> word); //if first word at index, put it in and point to Null if (hashtable[hashy(new_node-> word)] == NULL) { hashtable[hashy(new_node->word)] = new_node; new_node->next = NULL; } //if there is already a word at the index, add the new word else { new_node->next = hashtable[hashy(new_node->word)]; hashtable[hashy(new_node->word)] = new_node; } }