gpt4 book ai didi

c - 附加到 C 中的数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:01 24 4
gpt4 key购买 nike

假设我在内存中分配了一个数组。如何直接附加到列表的末尾?通过这个,我的意思是直接在数组中的最后一个条目之后。

我的 for 循环 (i=0;i<100;i++) 仅在某些情况下向数组添加元素,因此无法使用 i 追加到数组。

我的主要问题是:在 C 中有什么方法可以直接追加到数组的末尾?

谢谢

最佳答案

在评论中,您说数组中有未使用的空间,并且数组已经是合适的大小。在这种情况下,您只需要第二个变量来跟踪哪个元素是“下一个”。每次向数组“添加”一个值时,只需将该值复制到第二个变量指定的索引处的元素,然后将第二个变量递增 1。

int i;
int index = 0;

for (i = 0; i < 100; i++)
{
if (someCondition)
{
someArray[index++] = someValue;
}
}

通过说index++ , 而不是 ++index , index 的值直到 someValue 之后才真正递增已分配给数组中的一个元素。

int i;
int index = 0;

for (i = 0; i < 100; i++)
{
if (i >= 90)
{
// if index == 0, for instance, someValue will be assigned to
// someArray[0], and THEN index will be incremented to 1.
someArray[index++] = someValue;
}
}

// the first ten elements of someArray will be as follows:
//
// someArray[0] == 90
// someArray[1] == 91
// someArray[2] == 92
// someArray[3] == 93
// someArray[4] == 94
// someArray[5] == 95
// someArray[6] == 96
// someArray[7] == 97
// someArray[8] == 98
// someArray[9] == 99

关于c - 附加到 C 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642034/

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