gpt4 book ai didi

c - 如何在 C 中连接两个数组?

转载 作者:太空狗 更新时间:2023-10-29 16:58:00 25 4
gpt4 key购买 nike

如何连接两个数组以获得包含两个原始数组元素的单个数组?

最佳答案

C 中的数组只是一个连续的内存区域,带有一个指向它们起始位置的指针*。所以合并它们涉及:

  1. 找出数组 A 和 B 的长度,(您可能需要知道元素的数量和每个元素的 sizeof)
  2. 分配 (malloc) 一个大小为 A + B 的新数组 C。
  3. 将内存从A复制(memcpy)到C,
  4. 将内存从 B 复制到 C + A 的长度(见 1)。
  5. 您可能还想取消分配(释放)A 和 B 的内存。

请注意,这是一个昂贵的操作,但这是基本理论。如果您使用的库提供了一些抽象,您可能会过得更好。如果 A 和 B 比简单数组(例如排序数组)更复杂,则您需要进行比第 3 步和第 4 步更智能的复制(参见:how do i merge two arrays having different values into one array)。


  • 尽管出于这个问题的目的,指针解释就足够了,严格来说(并且为了安抚下面的评论者):C 数组的概念,可以在没有语法的情况下使用的指针。然而,在实现方面,C 数组和连续的内存区域(带有指针)非常接近,它们可以并且经常可以互换使用。

关于c - 如何在 C 中连接两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1696074/

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