作者james732 (好人超)
看板C_and_CPP
標題[問題] 給個type X求大小
時間Mon Dec 27 17:06:21 2010
如果給一個未知的型態X
在不宣告變數與指標變數的前提下
要怎麼求出X的大小?
之前有看過 offsetof 的寫法:
#define offsetof(type, f) ((size_t) \
((char *)&((type *)0)->f - (char *)(type *)0))
不過如果不是求 offset 而是求 size 的話,我就想不出來了...
另外有個問題,順便問一下好了
下面這個函式會有什麼問題?
int square(volatile int *value)
{
return *value * *value;
}
我想得到的只有 (1)volatile 很多餘(但似乎無害?) (2)int乘上int可能會溢位
不知道還有其他的問題嗎?
ps. 這是某公司的面試問題 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
→ michael0728n:直接 sizeof()? 12/27 17:25
我忘記題目上面有寫「不可以使用sizeof」了 XD
真是不好意思
推 loveme00835:(ptrdiff_t)( (X*)0 + 1 ) - (ptrdiff_t)( (X*)0 ) 12/27 17:37
原來如此,(Y)
→ loveme00835:第二個應該跟記憶體的管理還有多執行緒有關 12/27 17:38
不過題目沒有強調這件事,所以讓我有點疑惑
※ 編輯: james732 來自: 140.117.171.46 (12/27 17:45)