如何在C中不受限制地动态分配数组

问题描述 投票:1回答:1

好吧,我想更改结构的写入方式,目前我使用数组,并且需要限制其使用,但是我想要一种方法来创建一个动态数组,该数组的大小与读取的大小有关,而不必总是编辑数组值。

当前代码:

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函数进行相同操作

c arrays memory dynamic-memory-allocation allocation
1个回答
0
投票

您可以创建一个指向数组而不是数组的指针,也可以分配该数组。

© www.soinside.com 2019 - 2024. All rights reserved.