[問題] 記憶體配置內容heap,stack...

看板C_and_CPP作者時間9年前 (2016/02/03 14:43), 9年前編輯推噓7(7012)
留言19則, 9人參與, 最新討論串1/1
問題(Question):請問記憶體配置text, data, bss, heap, stack五個區塊中, C的結構structure是存在哪一個區塊呢? struct { int a; int array[100]; }TEST; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.238.1 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1454481810.A.73E.html

02/03 14:55, , 1F
structure是一種概念,不存在於哪個區塊.........
02/03 14:55, 1F
※ 編輯: peng0116 (111.251.238.1), 02/03/2016 15:06:57

02/03 15:11, , 2F
概念!?怎麼可能不存在記憶體區塊內...那變數存哪了...
02/03 15:11, 2F

02/03 15:20, , 3F
全域變數應當是放在data,區域變數在執行時會放stack
02/03 15:20, 3F

02/03 15:22, , 4F
確實 struct 的宣告不存在記憶體內,只是指示 offset
02/03 15:22, 4F

02/03 15:23, , 5F
至於struct是程式設計師的定義,此定義不存在於記憶體
02/03 15:23, 5F

02/03 15:23, , 6F
TEST在這裡是放在data區
02/03 15:23, 6F

02/03 15:23, , 7F
例如你的 TEST.array 就只是標示 shift 4 bytes
02/03 15:23, 7F


02/03 15:29, , 9F
了解,所以是看宣告struct TEST test;在全域還是區域
02/03 15:29, 9F

02/03 18:22, , 10F
清大資工所
02/03 18:22, 10F

02/03 18:26, , 11F
樓上啥意思?
02/03 18:26, 11F

02/03 18:43, , 12F
還要看前面有沒static
02/03 18:43, 12F

02/03 18:55, , 13F
原 PO 你應該誤解了宣告...你原文裡的宣告 TEST 是變數名
02/03 18:55, 13F

02/03 18:55, , 14F
跟著 struct 這個關鍵字後面的才是這 struct 的名字
02/03 18:55, 14F

02/03 18:56, , 15F
所以像這個宣告是一個無名 struct, 然後宣告 TEST 為此型態
02/03 18:56, 15F

02/03 21:23, , 16F
今年清大資工所出了這樣的題目
02/03 21:23, 16F

02/04 03:35, , 17F
今年?所以題目還沒放上網嗎?
02/04 03:35, 17F

02/05 17:32, , 19F
B.html
02/05 17:32, 19F
文章代碼(AID): #1MiQ6IS- (C_and_CPP)