gpt4 book ai didi

c - C 中字符串数组的成员之间交换

转载 作者:行者123 更新时间:2023-11-30 15:20:50 36 4
gpt4 key购买 nike

我想删除字符串数组的第 i 个成员,并将其后面的每个成员放在前面一位(第 i+1 个成员到 i 等等)。我想出了以下代码:

    for (int j = i; j < arrSize - 1; j++) {
strcpy(members[j],members[j+1]);
}
free(members[arrSize-1]);

但这让我觉得这可能是错误的。例如,如果第i个位置成员包含名字“John”,而第(i+1)个位置成员包含名字“Joshua”,这意味着每个字符串的长度不同,是否有任何内存泄漏或有什么问题吗?提前致谢!

编辑:成员的定义:

members = malloc(maxMembersNum * sizeof(char*));

最佳答案

与其复制字符串的内容,为什么不移动指针呢?即:

for (int j = i; j < arrSize - 1; j++) {
char *temp = members[j];
members[j] = members[j+1];
members[j+1] = temp;
}
free(members[arrSize-1]);

关于c - C 中字符串数组的成员之间交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857981/

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