小编Arc*_*her的帖子

是否可以在运行期间在结构中设置数组的大小?

我的结构如下:

struct Query {  
    int     pages[];
    int     currentpage;
};
Run Code Online (Sandbox Code Playgroud)

我想知道在创建结构后是否可以设置此数组的大小.

Query new = malloc(sizeof(struct Query));
Run Code Online (Sandbox Code Playgroud)

在此之后,我将执行一些计算,然后告诉我pages[]需要的大小.如果pages[]需要大小为4,我该如何设置它?

c arrays struct

14
推荐指数
3
解决办法
2159
查看次数

动态设置指向int的指针给出不正确的大小

我有一个struct定义:

struct Query {  
   int *pages;
   int currentpage;
};


struct Query *new = malloc(sizeof(struct Query));

new->pages = malloc(sizeof(int) * 4);
Run Code Online (Sandbox Code Playgroud)

然后检查大小new->pages以确保大小为4:

    int size = sizeof(new->pages)/sizeof(new->pages[0]);
Run Code Online (Sandbox Code Playgroud)

但是,size保持回归2而不是4.

谁会知道我可能做错了什么?

谢谢你的帮助.

c malloc struct

3
推荐指数
1
解决办法
64
查看次数

标签 统计

c ×2

struct ×2

arrays ×1

malloc ×1