gpt4 book ai didi

c - 在 C 中从数组中删除一些元素并重新调整数组大小

转载 作者:行者123 更新时间:2023-11-30 19:53:49 26 4
gpt4 key购买 nike

问候
我想从数组中删除一些元素并重新调整其大小。
例如我的数组是:

char get_res[6] = {0x32,0x32,0x34,0x16,0x00,0x00};  

现在我想删除0x16之后的元素,所以我想要的数组是:

get_res[] = {0x32,0x32,0x34,0x16};

解决方案是什么?

最佳答案

您无法在 C 中调整数组大小(例如,与 Python 不同)。对于真正的大小调整,至少从 API 用户的角度来看,请使用 malloccallocreallocfree(特别是realloc)。

无论如何,可以使用“调整”数组大小来模拟

  • 分隔符;例如,像 0xff 这样的分隔符可以标记数组中有效数据的结尾

    示例:

    #define DELIMITER 0xff

    print_data(char* data) {
    for (size_t i = 0; data[i] != DELIMITER; ++i)
    printf("%x", data[i]);
    }
  • 成员(member)柜台;从数组开头开始计算有效数据的数量

    示例:

    size_t counter = 5;

    print_data(char* data) {
    for (size_t i = 0; i < counter; ++i)
    printf("%x", data[i]);
    }
<小时/>

注释:

  • 对二进制数据使用unsigned charchar 可能是 signed char 的别名,您可能会遇到问题,因为 signed char 包含符号位。

关于c - 在 C 中从数组中删除一些元素并重新调整数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045072/

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