時所以基本上,當我編譯我的代碼以GCC編譯器我沒有得到任何錯誤或警告,但錯誤,當我輸入數據的第一塊,它說:總線錯誤:10,無編制
Bus error: 10.
我我不知道我做錯了什麼。我認爲問題來自void anagramGrouping
(最後一個功能)。我還包含了其他代碼以幫助遵循邏輯。
#include <stdio.h>
#include <string.h>
#define Row 2
#define col 20
int wordCount = 0;
int groupCount = 0;
char wordList[Row][col];
char group[Row][col];
// this is where prototypes go
void sortword(char word[col]);
void anagramGrouping(char word[col], char copy[col]);
void resetGroup();
int main() {
int i; // used in for loop to 'get' the strings
char word[col];
resetGroup();
for (i = 0; i < Row; i++) {
scanf("%s", word);
sortword(word);
wordCount++;
}
}
void resetGroup() {
int i;
for (i = 0; i < Row; i++)
strcpy(group[i], " ");
}
void sortword(char word[col]) {
int i = 0;
char temp;
char copy[col]; // used to store a copy of the original word
strcpy(copy, word);
while (word[i] != '\0') {
int j = i + 1;
while (word[j] != '\0') {
if (word[j] < word[i]) {
temp = word[i];
word[i] = word[j];
word[j] = temp;
}
j++;
}
i++;
}
anagramGrouping(word,copy);
}
void anagramGrouping(char word[col], char copy[col]) {
int n;
if (wordCount == 0) {
strcpy(group[0], copy);
}
for (n = 0; n <= groupCount; n++) {
if (strcmp(group[n], word) == 0) {
strcpy(group[n], copy);
} else {
groupCount++;
strcpy(group[groupCount], copy);
}
}
}
在valgrind或gdb中運行你的程序來查看哪一行觸發崩潰。 – immibis
對不起,沒有更多的幫助,但嘗試檢查你的指針/取消引用。 –
您的代碼非常糟糕。修復縮進並刪除無用的'//結束函數'註釋。 – chqrlie