[問題] struct 記憶體配置大小問題
跟上一篇的問題不太一樣
我用的是macbook pro xcode compiler
應該是64bit的沒有錯
(一)
#include <iostream>
using namespace std;
struct account
{
char id1;
int age;
char id2;
};
int main (void) {
account x;
cout << sizeof(x) << endl;
return 0;
}
print:12
(二)
struct account
{
long name;
char age;
};
int main(void) {
account x;
cout << sizeof(x) << endl;
return 0;
}
printf:16
重點來了 64bit 以8byte為單位
(二) 是16沒有問題
但是(一) 為什麼會是12呢?
記憶體分配圖示
---- ---- || ---- ---- ||
^ ^^^^ ^
chr int chr
我的想法是這樣 但是為什麼不是16?
感到非常疑惑@@
如果問題很蠢的話 請不吝給小弟我指教 感謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.156.147
※ 編輯: XYX16888 來自: 123.192.156.147 (02/24 23:13)
→
02/24 23:42, , 1F
02/24 23:42, 1F
推
02/25 00:00, , 2F
02/25 00:00, 2F
→
02/25 00:01, , 3F
02/25 00:01, 3F
→
02/25 00:01, , 4F
02/25 00:01, 4F
→
02/25 00:03, , 5F
02/25 00:03, 5F
→
02/25 00:03, , 6F
02/25 00:03, 6F
→
02/25 00:04, , 7F
02/25 00:04, 7F
雖然你這麼說 但是好像也沒說到原因 我還是不太了解@@
※ 編輯: XYX16888 來自: 123.192.156.147 (02/25 00:42)
推
02/25 00:49, , 8F
02/25 00:49, 8F
→
02/25 00:51, , 9F
02/25 00:51, 9F
推
02/25 01:19, , 10F
02/25 01:19, 10F
→
02/25 01:26, , 11F
02/25 01:26, 11F
推
02/25 01:31, , 12F
02/25 01:31, 12F
推
02/25 01:32, , 13F
02/25 01:32, 13F
推
02/25 01:34, , 14F
02/25 01:34, 14F
→
02/25 01:36, , 15F
02/25 01:36, 15F
→
02/25 01:49, , 16F
02/25 01:49, 16F
我有看 struct alignment
但是我仍舊覺得很疑惑才來問的
我再整理一次我的問題好了
(一)的記憶體分配圖示
記憶體分配圖示
|| ---- ---- || ---- ---- ||
^ ^^^^ ^
char int char
因為最小單位是8 最後8bytes中他只用了1bytes
所以我認為總共仍是配置16bytes 但是跑出來的結果是12
這是我主要的問題點
(二)的記憶體分配圖示
|| ---- ---- || ---- ---- ||
^^^^ ^^^^ ^
long char
因為最小單位是8所以最後那個8只用了1bytes 但仍配了8byte
總共是16byte 印出也是16沒有問題
我刻意po了兩個問題 就是要拿來比較
明明是一樣的分配 卻是不同的大小
所以才想問大家我的想法哪裡有誤?煩請不吝糾正我
※ 編輯: XYX16888 來自: 140.112.4.181 (02/25 09:33)
※ 編輯: XYX16888 來自: 140.112.4.181 (02/25 09:35)
推
02/25 09:59, , 17F
02/25 09:59, 17F
→
02/25 10:00, , 18F
02/25 10:00, 18F
→
02/25 10:00, , 19F
02/25 10:00, 19F
→
02/25 10:01, , 20F
02/25 10:01, 20F
→
02/25 10:03, , 21F
02/25 10:03, 21F
→
02/25 10:03, , 22F
02/25 10:03, 22F
推
02/25 11:13, , 23F
02/25 11:13, 23F
→
02/25 16:18, , 24F
02/25 16:18, 24F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章