問題(Question):請問記憶體配置text, data, bss, heap, stack五個區塊中,
C的結構structure是存在哪一個區塊呢?
struct
{
int a;
int array[100];
}TEST;
structure是一種概念,不存在於哪個區塊.........
概念!?怎麼可能不存在記憶體區塊內...那變數存哪了...
全域變數應當是放在data,區域變數在執行時會放stack
作者:
tjhuang (Jacob)
2016-02-03 15:22:00確實 struct 的宣告不存在記憶體內,只是指示 offset
至於struct是程式設計師的定義,此定義不存在於記憶體
作者:
dorgonman (dorgonman)
2016-02-03 15:23:00TEST在這裡是放在data區
作者:
tjhuang (Jacob)
2016-02-03 15:23:00例如你的 TEST.array 就只是標示 shift 4 bytes
了解,所以是看宣告struct TEST test;在全域還是區域
作者:
odanaga (PixiyON)
2016-02-03 18:22:00清大資工所
作者:
Caesar08 (Caesar)
2016-02-03 18:26:00樓上啥意思?
作者:
cobrasgo (人魚線變成鮪魚線,超帥)
2016-02-03 18:43:00還要看前面有沒static
作者:
LPH66 (-6.2598534e+18f)
2016-02-03 18:55:00原 PO 你應該誤解了宣告...你原文裡的宣告 TEST 是變數名跟著 struct 這個關鍵字後面的才是這 struct 的名字所以像這個宣告是一個無名 struct, 然後宣告 TEST 為此型態
作者:
odanaga (PixiyON)
2016-02-03 21:23:00今年清大資工所出了這樣的題目
作者:
tinlans ( )
2016-02-04 03:35:00今年?所以題目還沒放上網嗎?
作者:
odanaga (PixiyON)
2016-02-05 17:32:00