[問題] 關於struct大小與stack的問題
我是用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
07/07 13:46, 1F
推
07/07 18:14, , 2F
07/07 18:14, 2F
→
07/07 23:24, , 3F
07/07 23:24, 3F
推
07/08 12:54, , 4F
07/08 12:54, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章