我有一個奇怪的問題與指針。我正在建立一個光線跟蹤KD樹,並在BuildKDtree函數打印根 - >左和右 - >右,我得到正確的值用於存儲在節點上的各種屬性。 當我完成該代碼,然後嘗試使用原始根指針遍歷樹時,root-> left和root-> right值包含垃圾和代碼崩潰! 任何有關可能導致此問題的建議? 如果需要,我可以粘貼代碼,但它很笨拙。設置垃圾值後指針即使設置
0
A
回答
0
BuildKDtree
函數的簽名是什麼?有沒有可能有一個指針,但實際需要的是指針指針?只是想猜測:)
+0
謝謝阿倫其實我也這麼認爲,但我想現在就解決了。 – Manish 2010-10-10 06:48:53
0
機會是:
- 當您分配root的數據結構,你不是實際上得到一個有效的地址。
- 您的其他代碼(或您正在使用的框架)正在寫出結構的界限。
一般來說,第二個因爲SEGFAULT而不太可能,但是除非您真的寫出過去的頁面邊界,否則這些不會保證發生。聽起來像一個討厭的問題進行調試,嘗試valgrind :)
0
你能檢查這個指針是否有效嗎?
也許你做這樣的事情:
Node n = 0;
n->doThat();
在這種情況下,這不會有任何有效的左側和右側的指針。
0
謝謝你們指出一些可能的條件。我發現了這個錯誤。我實際上沒有在BuildKDtree函數中分配動態內存。因此,它內部的每件事情都可以正常工作。但是當我返回時,變量被銷燬並因此出錯。
相關問題
- 1. memset設置字符指針NULL /垃圾
- 2. 結構指針設置值
- 3. 使用反射設置指針值?
- 4. 設置後幀指針指向哪裏?
- 5. Xcode:垃圾收集器設置
- 6. 字符指針返回值垃圾
- 7. 發佈後設置指針爲零嗎?
- 8. 將值設置爲雙結構指針
- 9. 問題設置值deque指針
- 10. 設置獲取指針
- 11. Javascript設置指針事件
- 12. 在功能設置指針
- 13. 將指針設置爲contenteditable
- 14. C++設置空指針?
- 15. 將指針設置爲空後通過指針訪問函數
- 16. Ubuntu exim4 - 配置設置和垃圾郵件過濾器
- 17. QTableView和設置指針位置
- 18. 使用指針/類的設置方法
- 19. 使用指針設置變量
- 20. 如何使用EWS API設置垃圾郵件?
- 21. 結合使用類指針返回垃圾值
- 22. 即使設置它後MVC ViewResult.VIewName爲空
- 23. 類中的指針垃圾,C++
- 24. 返回指針變成垃圾... C++
- 25. 垃圾收集與共享指針
- 26. 無法將指針位置設置爲C++中另一個指針位置的指針位置
- 27. IServiceProvider垃圾收集/處置
- 28. 即時得到垃圾值對象
- 29. 設置一個對象爲零標誌它爲垃圾回收
- 30. Java垃圾回收,對null的設置參考
這可能只是一個缺失的原始根指針分配,或類似的東西。如果可以,請發佈代碼。好主意做一個副本,並儘量減少到絕對必需品。 – 2010-10-10 06:33:37