執行完所有C代碼後,我得到了segementation錯誤。它生成零字節內存泄漏的必需輸出。之後,顯示「分段故障」。以下是gdb
輸出。執行整個代碼後得到「分段錯誤」
Program received signal SIGSEGV, Segmentation fault.
0x08060f90 in _GLOBAL_OFFSET_TABLE_()
(gdb) bt
#0 0x08060f90 in _GLOBAL_OFFSET_TABLE_()
#1 0xffbecd18 in ??()
#2 0x15048815 in ??()
#3 0xcd0fbecd in ??()
#4 0x0610ffbe in ??()
#5 0xffbecd08 in ??()
#6 0xf7f79ff4 in ??() from /lib/tls/libc.so.6
#7 0x00000000 in ??()
(gdb)
編輯
char **Connections,**Doors,**Zones;
char *s1,*s2;
char con[] = "c_";
char zon[] = "z_";
char dor[] = "d_";
for (i=0; i<nc ; i++){
s1 = con;
s2 = string_IntToString(i);
Connections[i]= string_Conc(s1,s2);
string_StringFree(s2);
}
編輯
char* string_Conc(const char* s1, const char* s2)
{
char* dst;
dst = memory_Malloc(strlen(s1) + strlen(s2) + 1);
strcpy(dst, s1);
return strcat(dst,s2);
}
通過查看可能損壞的堆棧跟蹤很難說出任何內容。真正的錯誤可能在任何地方,很可能是緩衝區溢出或類似的東西。除了仔細查看代碼並嘗試評論它的各個部分之外,很難推薦任何東西,檢查錯誤是否仍然存在。 – 2011-01-24 10:40:34