正如問題中提到的,我在執行康威的gtkmm生活遊戲時遇到了段錯誤,這是我正在研究的。在gtkmm中執行康威生命遊戲的Segfault
它可以在這裏找到:https://github.com/sakekasi/game-of-life
錯誤的回溯,可以在這裏找到:https://gist.github.com/3505525
當我插入cells_get打印報表或create_updated網格,它開始打印,不會產生一個段錯誤和永遠不會做任何事情。
正如問題中提到的,我在執行康威的gtkmm生活遊戲時遇到了段錯誤,這是我正在研究的。在gtkmm中執行康威生命遊戲的Segfault
它可以在這裏找到:https://github.com/sakekasi/game-of-life
錯誤的回溯,可以在這裏找到:https://gist.github.com/3505525
當我插入cells_get打印報表或create_updated網格,它開始打印,不會產生一個段錯誤和永遠不會做任何事情。
create_updated_grid
正在訪問離開網格邊緣的單元格。這叫做cells_get(i+1,j)
。
您需要將cells_get
中的越界檢查更改爲>=
而不是>
。
我的一部分愚蠢的錯誤。那就是訣竅。謝謝! – sakekasi
您是否構建了調試模式並在調試器下運行? – ergosys
是的。 gtk應用程序的問題在於,當我在主文件末尾運行應用程序時,我無法很好地進行調試,因爲實際的應用程序位於另一個線程中。 – sakekasi
使用斷點來關注問題方法。 – ergosys