此计划的目标是计算文件的每个单词" correctme.txt'内部的最小编辑距离' dictionary.txt'。 我不知道为什么,但是我的代码在第一次(内部)后进入核心转储(Segmentation Fault)。功能' dynamic_edit_distance'是正确的,因为我已经测试过了。 与' read_quote'相同和' read_dictionary'。 为什么会出现这个错误?
#define QUOTE_SIZE 100
#define DICTIONARY_SIZE 1000000
int main(){
long i, j, min, a;
char** quote = read_quote("correctme.txt", QUOTE_SIZE);
char** dictionary = read_dictionary("dictionary.txt", DICTIONARY_SIZE);
for(i = 0; i < QUOTE_SIZE; i++){
min = QUOTE_SIZE;
for(j = 0; j < DICTIONARY_SIZE; j++){
dynamic_edit_distance(quote[i], dictionary[j]);
min = a < min ? a : min;
}
printf("%s\tMinimum distance: %ld", quote[i], min);
}
//free memory
for(i = 0; i < DICTIONARY_SIZE; i++)
free(dictionary[i]);
free(dictionary);
for(i = 0; i < QUOTE_SIZE; i++)
free(quote[i]);
free(quote);
}