編輯:第一評論者報告說代碼沒有明顯錯誤,所以我用更多的代碼修改了帖子。道歉的長度。再次,當我引用子結構中的字符串變量時,錯誤似乎是......請注意,如果由於寫入另一個字符串變量var,而導致segfaults中的段錯誤發生,將導致第一次寫入。請注意,在這種情況下,子結構中的其他元素(例如double Volume
)可以正確寫入,而不會出現運行時錯誤。段結構陣列內部結構的段錯誤問題
編輯2: 根據戴夫的建議,我運行Valgrind的調試啓用可執行文件。它吐出的是:
編輯3: 顯然我有一個版本,而不是在初始化程序中的直接數組的malloc版本。刪除這個問題解決了這個問題。因爲valgrind正在幫助我修復各種其他memleaks /問題,所以我會給Dave充分的信任。謝謝你的幫助,雖然....
36號線是它失敗的一個(以下注釋)
--code刪除,以防止傳播
我宣佈的一個實例我頂層struct(sim_t)在main中。當我嘗試寫入子結構內的字符串時,該程序就會發生段錯誤。寫入子結構的其他變量,例如當我在GDB中運行程序時,似乎正確執行了雙打,整數等。
似乎有什麼明顯的我在這裏失蹤。有沒有人看到這個代碼的問題?
(並記錄在案,請不要對資本的意見,我在下面的MSDN的命名約定標準。)
你發佈的內容沒有任何問題。更多代碼。 – Erik 2011-03-15 14:46:57
您能否提供實際上失敗的代碼... – steabert 2011-03-15 14:49:55
只是猜測 - 您是否在沒有向字符串提供某些內容的情況下將字符串'InitialConfigPDB [1] ='x''編入索引? – 2011-03-15 14:51:52