我有一個struct
定義:動態設置指針爲int給予不正確的大小
struct Query {
int *pages;
int currentpage;
};
struct Query *new = malloc(sizeof(struct Query));
new->pages = malloc(sizeof(int) * 4);
我再檢查的new->pages
的大小以確保尺寸爲4這樣做:
int size = sizeof(new->pages)/sizeof(new->pages[0]);
然而, size
總是返回2
而不是4
。
有人會知道我可能會做錯什麼嗎?
感謝您的幫助。
'的sizeof(新建 - >頁)/的sizeof(新建 - >頁面[0])''的意思的sizeof(INT *)/的sizeof(int)的'' – BLUEPIXY
是pages'一個'pointer',不一個'數組'。你說的是:給我一個指針的大小除以int的大小(在大多數系統中是8/4 = 2)。 – nicola
我建議你在存儲元素數量的struct上添加第三個成員變量。 – user694733