[問題] malloc 記憶體長度的問題
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux Ubuntu 20
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC 9.3
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
N/A
問題(Question):
我定義了一個 struct
typedef struct __list{
int data;
struct __list *next;
}list;
可以知道上面的 struct __list 所佔的空間是 16 byte
然後我產生了 3 個 node,每一個 linked list node 的資訊如下
第一個 node addr: 0x5650c11176b0 , data : 2
第二個 node addr: 0x5650c11176d0 , data : 3
第三個 node addr: 0x5650c11176f0 , data : 1
我的問題是:
第一個 node 位置是 0xb0,第二個 node 的位置是 0xd0
每個 node 長度為 16 byte,
為什麼第二個 node 距離第一個 node 的位置,為什麼不是 0xc0,差 16 byte,
而是差 32 byte
雖然 malloc 的 linked list 就是不連續的記憶體空間,
所以不能預期每個 node 會連在一起
但是又為什麼每個 node 都剛剛好差距 32 byte
有前輩可以解說一下嗎?
謝謝
餵入的資料(Input):
如上
預期的正確結果(Expected Output):
記憶體空間差距的疑問
錯誤結果(Wrong Output):
N/A
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
程式碼如上
補充說明(Supplement):
N/A
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.174.9.33 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1611253677.A.6E1.html
→
01/22 04:08,
4年前
, 1F
01/22 04:08, 1F
推
01/22 05:28,
4年前
, 2F
01/22 05:28, 2F
推
01/22 09:11,
4年前
, 3F
01/22 09:11, 3F
推
01/22 11:57,
4年前
, 4F
01/22 11:57, 4F
→
01/22 11:57,
4年前
, 5F
01/22 11:57, 5F
→
01/22 11:57,
4年前
, 6F
01/22 11:57, 6F
→
01/22 11:57,
4年前
, 7F
01/22 11:57, 7F
→
01/22 11:58,
4年前
, 8F
01/22 11:58, 8F
→
01/22 11:58,
4年前
, 9F
01/22 11:58, 9F
→
01/22 13:46,
4年前
, 10F
01/22 13:46, 10F
→
01/22 13:47,
4年前
, 11F
01/22 13:47, 11F
→
01/22 13:47,
4年前
, 12F
01/22 13:47, 12F
→
01/22 13:47,
4年前
, 13F
01/22 13:47, 13F
推
01/23 04:16,
4年前
, 14F
01/23 04:16, 14F
→
01/24 01:51,
4年前
, 15F
01/24 01:51, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章