gpt4 book ai didi

c - 将项目添加到C中的空数组并获取数组长度

转载 作者:行者123 更新时间:2023-11-30 18:24:58 25 4
gpt4 key购买 nike

我曾多次尝试解决这个问题,但每次都失败了。

我有一个数组

char *array[1024] = {};

现在我想向数组添加一个项目,并且还可以按数字访问这些项目

例如:array[0] 将是第一项array[1] 将是第二个array[2] 将是第三项

但我也想知道数组中有多少项,这样我就可以使用类似的东西

for(int i = 0; i <= totalitemsinarray; i++) {
print(array[i]);
}

最佳答案

您无法更改 C 中数组的大小。但是,您可以分配一个足够大的数组,然后用条目填充它。首先,声明一个足够大小的数组,例如 1024。

char *array[1024];

然后声明一个变量fill,用于计算array中已使用的槽数。将其初始化为0,因为一开始使用了 0 个槽。然后,每次插入一个项目时,都会增加 fill:

array[fill++] = ...;
...
array[fill++] = ...;

确保您永远不会尝试向数组中插入超过 1024 个项目,C 不会为您检查这一点。

要获得更灵活的方法,请使用 malloc() 为数组分配内存,然后在数组满时定期使用 realloc() 扩大内存。如果以指数步长增加数组大小(例如,乘以 Φ = 0.5 + 0.5 √2 ≈ 1.61),则每个插入条目的摊销时间为 O(1)。

关于c - 将项目添加到C中的空数组并获取数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34425721/

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