我的结构如下:
struct Query {
int pages[];
int currentpage;
};
我想知道在创建结构之后是否可以设置这个数组的大小。
Query new = malloc(sizeof(struct Query));
之后,我将执行一些计算,然后告诉我
pages[]
需要的大小。如果pages[]
需要4号,我如何设置它? 最佳答案
将pages
成员的类型更改为指针。
struct Query {
int *pages;
int currentpage;
};
struct Query *test = malloc(sizeof(struct Query));
if (test != NULL)
{
//your calculations
test->pages = malloc(result_of_your_calcs);
if (test->pages != NULL)
{
// YOUR STUFF
}
else
{
// ERROR
}
}
else
{
// ERROR
}
当你将
free
你的结构,你必须做相反的事情。free(test->pages);
free(test);
关于c - 是否可以在运行时设置结构内数组的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37178921/