好吧,我想更改结构的写入方式,目前我使用数组,并且需要限制其使用,但是我想要一种方法来创建一个动态数组,该数组的大小与读取的大小有关,而不必总是编辑数组值。
当前代码:
struct sr_flag {
int value_flag;
};
struct er_time {
int value_time;
};
struct se_option {
struct sr_flag flag[50];
struct er_time time[50];
};
struct read_funcs
struct se_option *option;
void (*option_func) (void);
...
}
struct read_funcs func_;
struct read_funcs *func;
int sr_flags(int i, int fg, int val) {
if(i < 0)
return 0;
return func->option[i].flag[fg].value_flag = val;
}
void option_func(void) {
struct se_option fnc;
fnc.option = malloc(500 * sizeof(*(fnc.option)));
}
void read_fnc() {
func = &func_;
func->option = NULL;
func->option_func = option_func;
}
我正在寻找一种删除数组数量的方法[50],而不是每次执行sr_flags函数时,都会提高限制]
示例:sr_flags函数执行的1x数组将是[1],如果执行的2x将是[2]
我也考虑使用option_func函数进行相同操作
我尝试不成功使用以下内容
struct se_option {
struct sr_flag *flag;
struct er_time time[50];
};
int sr_flags(int i, int fg, int val) {
if(i < 0)
return 0;
func->option[i].flag = malloc(1 * sizeof(*(func->option[i].flag)));
return func->option[i].flag[fg].value_flag = val;
}
int main () {
for(int i < 0; i < 10; i++)
sr_flags(i, 1, 30);
return 0;
}
我不确定您要的内容100%,但我想您只是想调用realloc并通过提供的数量来增加大小。这很容易做到,对于不确定的数组值,我不确定,因此我只使用了占位符值。