我試圖用gcc編譯並得到了段錯誤。我無法弄清楚是什麼原因造成的,以及如何解決這個問題。什麼導致分段錯誤?我正在使用gcc編譯
struct musiclist
{
int snum;
char sname[30];
};
struct musiclist a[100];
struct comments
{
char com[100][180];
};
struct comments coms[100];
int ncom = 0;
int get_comments(struct comments coms[], int i, struct musiclist a[], int ncom)
{
char buf[30];
strcpy(buf, a[i].sname);
snprintf(buf, sizeof(buf), "%s.txt");
FILE *c = fopen(buf, "ab+");
if (!c)
printf("Error!");
char *str = (char*)malloc(180 * sizeof(char));
size_t len = 0;
while (getdelim(&str, &len, '$', c)) {
ncom++;
strcpy(coms[i].com[ncom], str);
}
free(str);
return ncom;
}
你試過用gdb這樣的調試器嗎? 'gcc -g yoursource.c && gdb a.out' –
你是怎麼調用'get_comments'方法的? –
添加你的'main'函數向我們展示如何重現。另外,你爲什麼要在陌生的地方放置牙套? –