Program received signal SIGSEGV, Segmentation fault.
0x08048637 in insertWordDictR (string=0xbf87e7b6 "a", child=0x20f88,
isTerminal=0x20f8c) at dictionary.c:54
54 *isTerminal = False;
在頭文件
typedef enum {False, True} bool;
下面是代碼的相關線:
dictLink insertWordDictR(char *string, dictLink child, bool* isTerminal){
dictLink newWord;
if(isTerminal != NULL){
if(string[0] == '\0'){
*isTerminal = True;
return NULL;
}else{
*isTerminal = False;
}
}
if (child == NULL){
newWord = malloc(sizeof (struct dictEdge));
newWord->thisChar = string[0];
newWord->child = insertWordDictR(string + 1, newWord, &(newWord->isTerminal));
newWord->sibling = NULL;
}else{
newWord = insertIntoSiblingList(string, child);
}
return newWord;
}
此線是我怎樣調用該函數的示例
newWord->child = insertWordDictR(string + 1, newWord, &(newWord->isTerminal));
All files can be found here,還有一個名爲「測試」的輸入文件。
在您調用insertWordDictR函數的地方發佈代碼,也包括您傳遞給該函數的所有變量的定義 – nos 2011-05-21 12:38:23
我建議啓用其他編譯器警告......例如,如果您使用gcc,「-Wall」命令行選項可能會警告未初始化的「result」使用。 – 2011-05-21 15:42:22