我在這裏粘貼我的代碼:http://pastebin.com/tPvRHrkW 與gcc
編譯。 看來發生錯誤是因爲我爲編譯器定義了一個太大的結構。我把這個結構放到另一個源文件中進行測試,這次沒有發生錯誤。那麼爲什麼我會得到SIGSEGV,並且對結構的大小有任何限制?c - 爲什麼我會得到這個SIGSEGV?我怎麼知道一個結構可以得到多少內存?
0
A
回答
3
結構的大小沒有限制,問題在於你如何使用它。 MGraph
是巨大的結構類型,並且在兩個地方以將它放置在堆棧上的方式使用它;一次作爲函數的參數,再次作爲局部變量。堆棧空間通常不是允許增長到很大比例的東西。
我會建議兩個更改。首先,爲這種類型的實例使用動態分配。其次,將指針作爲參數傳遞給它,而不是實際的數據。
1
通常,您只受可用內存和系統尋址能力的限制。但是在你的情況下,你聲明瞭一個局部變量,它將被分配到堆棧上。這個堆棧的容量可能會受限得多。
+0
我嘗試了一個更大的數組,它仍然有效。這裏似乎沒有限制。 – CDT
1
相關問題
- 1. 我不知道爲什麼我會得到這個'Addressof'錯誤?
- 2. 爲什麼我得到這個結果?
- 3. 爲什麼我會得到這個StackOverFlowException
- 4. 爲什麼我會得到這個ValueError?
- 5. 爲什麼我會得到這個IndexOutofBoundsexception?
- 6. 爲什麼我會得到一個無條件跳轉的SIGSEGV?
- 7. 爲什麼我得到FileNotFoundException?我可以看到這個位置的文件,所以我知道它存在
- 8. 爲什麼我會得到一個GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT?
- 9. 我得到一個斷點,我不知道爲什麼
- 10. 爲什麼我會得到一個java.nio.BufferOverflowException
- 11. 有誰知道爲什麼我得到這個IllegalMonitorStateException?
- 12. 不知道爲什麼我得到這個語法錯誤
- 13. 爲什麼我沒有得到一個內存異常這裏
- 14. 不知道爲什麼我得到java.lang.NullPointerException
- 15. 爲什麼我得到這個數字?
- 16. 爲什麼我得到這個錯誤?
- 17. 爲什麼我會得到這個結果?
- 18. 爲什麼我得到這個錯誤?
- 19. 爲什麼我得到這個錯誤
- 20. 爲什麼我得到這個錯誤?
- 21. 爲什麼我得到這個追溯?
- 22. 爲什麼我得到這個NullReferenceException?
- 23. 爲什麼我得到這個錯誤?
- 24. 不知道爲什麼我得到一個NullPointerException
- 25. 爲什麼我會得到這個在一個404節點
- 26. 爲什麼我得到這個內存異常異常?
- 27. 不知道爲什麼我得到一個堆棧溢出
- 28. 不知道爲什麼我得到一個NullPointerException錯誤
- 29. 不知道爲什麼我得到一個鏈接錯誤
- 30. 不知道爲什麼我得到一個java.lang.NullPointerExceptio
哪裏它賽格故障?你是否通過調試器運行它? – Joe