gpt4 book ai didi

C 动态列表问题

转载 作者:行者123 更新时间:2023-11-30 15:46:40 28 4
gpt4 key购买 nike

typedef struct {
long blarg;
} item;

typedef struct
{
item* items;
int size;
} list;

列表和项目结构,相当简单。

list l;
l.size = 3;
realloc(l.items, l.size*sizeof(item));

创建一个列表,分配它容纳 3 个项目。

item thing;
item thing2;
item thing3;

thing.blarg = 1337;
thing2.blarg = 33;
thing3.blarg = 123;

l.items[0] = thing;
l.items[sizeof(item)+1] = thing2;
l.items[(sizeof(item)*2)+1] = thing3;

创建一些项目并将它们添加到列表中...但是打印它们时:

printf("List 0: %ld\n", l.items[0].blarg);
printf("List 1: %ld\n", l.items[sizeof(item)+1].blarg);
printf("List 2: %ld\n", l.items[(sizeof(item)*2)+1].blarg);

List 0: 1337
List 1: 33 {
List 2: 1953720652 !

哪里出了问题?

最佳答案

您应该更改 l.items[sizeof(item)+1]l.items[(sizeof(item)*2)+1] --> l.items[1]l.items[2]

关于C 动态列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158232/

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