gpt4 book ai didi

c - 移位字符串数组 C

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

我正在尝试在 C 中创建一个函数,将数组中的所有元素(字符串)向上移动并在末尾插入一个字符串。由于某种原因,我创建的函数会导致数组的所有元素具有相同的值(我要插入的值)。我不确定我做错了什么。

起初我认为可能是因为它们是字符串,并且它们要移动到的元素需要在内存中重新分配,但我认为无论如何我只是移动字符串的内存位置。我肯定误会了什么。

任何帮助将不胜感激。

void addItem(char **list, char *item, int size){
int i;

// loop through the list and move everthing up
for(i=0; i<size-1; i++){
// move items up until we are at the last item
list[i] = list[i+1];
}
// set the last item
list[size-1] = item;
}

最佳答案

这是一个建议,您可以如何做到这一点

void addItem(char **list, char* item, int* count, int size)
{
int i = 0;
if (*count == size)
{
for (i = 0; i < size-1; ++i)
{
list[i] = list[i+1];
}
list[size-1] = item;
}
else
{
list[*count] = item;
(*count)++;
}
}

您需要区分数组中的字符串数量和数组的最大大小。

关于c - 移位字符串数组 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26521584/

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