gpt4 book ai didi

c - 初始化结构体中的数组

转载 作者:行者123 更新时间:2023-11-30 21:38:45 24 4
gpt4 key购买 nike

我正在尝试初始化结构内的数组,Like this .

我希望数组的大小为 row*col。

这是部分代码:

struct tbl{
int col;
int row;
char** elem [col*row];
};


int main(int argc, char** argv){

int i, row, col;
col = row = 0;
bool loop = true;
char c;
col = col/row;

table tab;
tab.row = row;
tab.col = col;

return 0;
}

最佳答案

您不能以这种方式声明结构。人们所做的一件事是将数组设置到结构的末尾,然后使用 malloc 为结构中的数组留出额外的空间。像这样的事情:

typedef struct {
int row;
int col;
char **elem[];
} table;

void some_func() {
int row = 5;
int col = 5;
table *tab = malloc(sizeof(table) + ((row * col) * sizeof(char **)));
tab->row = row;
tab->col = col;
// now do whatever you need to with your new struct
// that holds an array of 25 char ** elements
}

关于c - 初始化结构体中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com