2012-08-29 47 views
1

正如問題中提到的,我在執行康威的gtkmm生活遊戲時遇到了段錯誤,這是我正在研究的。在gtkmm中執行康威生命遊戲的Segfault

它可以在這裏找到:https://github.com/sakekasi/game-of-life
錯誤的回溯,可以在這裏找到:https://gist.github.com/3505525

當我插入cells_get打印報表或create_updated網格,它開始打印,不會產生一個段錯誤和永遠不會做任何事情。

+0

您是否構建了調試模式並在調試器下運行? – ergosys

+0

是的。 gtk應用程序的問題在於,當我在主文件末尾運行應用程序時,我無法很好地進行調試,因爲實際的應用程序位於另一個線程中。 – sakekasi

+0

使用斷點來關注問題方法。 – ergosys

回答

3

create_updated_grid正在訪問離開網格邊緣的單元格。這叫做cells_get(i+1,j)

您需要將cells_get中的越界檢查更改爲>=而不是>

+0

我的一部分愚蠢的錯誤。那就是訣竅。謝謝! – sakekasi