我有一个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