5
我收到了怪異的seg錯誤,似乎來自某處不在我的程序...不明確無論如何。我在兩個數組中調用「strcmp」...兩個數組都存儲在相同類型的結構中。 「 - >」我通過與非關聯越來越善於用一個點符號和一個:分段錯誤:「...沒有這樣的文件或目錄」
int name = strcmp(one.name, two->name);
它編譯罰款,但是當我運行它,我得到了賽格故障。我試着用GDB來追蹤它,但是當我在我認爲應該發生的地方放置斷點時,無論如何它都會發生故障。我得到:
Program received signal SIGSEGV, Segmentation fault.
__strcmp_ia32() at ../sysdeps/i386/i686/multiarch/../strcmp.S:40
40 ../sysdeps/i386/i686/multiarch/../strcmp.S: No such file or directory.
in ../sysdeps/i386/i686/multiarch/../strcmp.S
FML。建議?謝謝!
當您在gdb中發生段錯誤時,您是否嘗試過回溯? –
在呼叫的地方'one.name','two'和'two-> name'的值是多少? – Mud
您遇到了段錯誤,並且在您的環境中不存在'strcmp'的源,當系統在發生seg錯誤後嘗試查找它*時。源代碼不需要存在,它是一個標準的庫函數。所以問題在於你覆蓋了其他地方的內存邊界。使用valgrind或內存分析工具運行你的程序應該給出確切的細節。 –