gpt4 book ai didi

c - 动态数组内的动态数组

转载 作者:行者123 更新时间:2023-11-30 21:01:44 26 4
gpt4 key购买 nike

我这里有一些示例代码,其中包含我认为解决我的问题所需的内容。

基本上,我需要在一个具有可变数量条目的数组内存储可变数量的原因。这是array[5].b[3]不允许?有什么替代方案吗?

提前致谢

typedef struct {
int a;
char *reasons;
}t_a;

f() {
int space=10,spaceReasons=5;
t_a *array;
array=NULL;

array=realloc(array,sizeof(t_a)*space);
array[5].reasons=realloc(array[5].reasons,sizeof(char)*spaceReasons);
fgets (array[5].reasons[3]),300, stdin);
free(array);
}

最佳答案

这是一个工作示例:

#include <stdlib.h>
#include <stdio.h>

typedef struct {
int a;
char* reasons;
} t_a;

int main(void) {
int space = 10, spaceReasons = 5;
t_a* array = NULL;

array = realloc(array, sizeof(t_a) * space);
for (int i = 0; i < space; i++) {
array[i].reasons = NULL;
array[i].reasons = realloc(array[i].reasons, sizeof(char) * spaceReasons);

// fill with fgets
fgets (array[i].reasons, spaceReasons, stdin);
}

// print results
for (int i = 0; i < space; i++) {
printf("%s\n", array[i].reasons);
}

// first free all reasons
for (int i = 0; i < space; i++) {
free(array[i].reasons);
}
// then free array
free(array);
}

关于c - 动态数组内的动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516913/

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