[問題] 關於struct大小與stack的問題

看板C_and_CPP (C/C++)作者 (ocgod)時間16年前 (2009/07/07 13:42), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/1
我是用gcc 下面這是一個struct的使用,可以編過也可以跑 typedef struct mystruct_t{ float arr[1000]; }MYSTRUCT; int main(){ MYSTRUCT data; data.arr[0]=0; } 不過如果struct的大小設大一點,一樣可以編得過, 但執行時卻會發生segmentation fault, typedef struct mystruct_t{ float arr[10000000]; }MYSTRUCT; int main(){ MYSTRUCT data; data.arr[0]=0; } 用gdb看發現data的位址不是可以存取的位址, 後來經過朋友指點才知道是stack爆掉, 換用malloc就可以解決了! 請問如果用本來的方法有辦法避免stack爆掉嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.102.102

07/07 13:46, , 1F
把 stack size limit 設大一點
07/07 13:46, 1F

07/07 18:14, , 2F
愛用動態記憶配置~
07/07 18:14, 2F

07/07 23:24, , 3F
請問有檢查或防止stack爆掉的方法嗎?
07/07 23:24, 3F

07/08 12:54, , 4F
可能沒有, 偷看 esp register 不知道行不行 XD
07/08 12:54, 4F
文章代碼(AID): #1AKk18O9 (C_and_CPP)
文章代碼(AID): #1AKk18O9 (C_and_CPP)