質問編集履歴
1
エラー箇所変更 ソースコード変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
前回投稿させてもらった件の続きなのですが,英単語を登録して出現回数も記録するハッシュ表を作成しました.今悩んでいますのがlexと入力したら英単語を辞書順にoccと入力したら出現回数を降順に回数が一致するなら辞書順に並べるというプログラムを作成したソースコードが下のものになるのですが,これを実行すると
|
1
|
+
前回投稿させてもらった件の続きなのですが,英単語を登録して出現回数も記録するハッシュ表を作成しました.今悩んでいますのがlexと入力したら英単語を辞書順にoccと入力したら出現回数を降順に回数が一致するなら辞書順に並べるというプログラムを作成したソースコードが下のものになるのですが,これを実行するとqsortを実行しようとするとアクセス違反が起きてしまいます.何故起きてしまうのか原因と解決方法を教えてくれないでしょうか
|
2
2
|
|
3
3
|
hash.c```/*
|
4
4
|
|
@@ -494,7 +494,7 @@
|
|
494
494
|
|
495
495
|
{
|
496
496
|
|
497
|
-
qsort(t, size
|
497
|
+
qsort(t->heads, t->size, sizeof(HashNodePtr), compare1);
|
498
498
|
|
499
499
|
}
|
500
500
|
|
@@ -504,7 +504,7 @@
|
|
504
504
|
|
505
505
|
{
|
506
506
|
|
507
|
-
qsort(t, size
|
507
|
+
qsort(t->heads, t->size, sizeof(HashNodePtr), compare2);
|
508
508
|
|
509
509
|
}
|
510
510
|
|
@@ -628,9 +628,9 @@
|
|
628
628
|
|
629
629
|
}
|
630
630
|
|
631
|
-
if (str
|
631
|
+
if (strcmp(str, "lex")==0)sort1(t);
|
632
|
-
|
632
|
+
|
633
|
-
else if (str
|
633
|
+
else if (strcmp(str,"occ")==0)sort2(t);
|
634
634
|
|
635
635
|
print_hashtable(t, fp2);
|
636
636
|
|