gpt4 book ai didi

c - 如何在C中将数组拆分为两个数组

转载 作者:太空狗 更新时间:2023-10-29 17:14:41 25 4
gpt4 key购买 nike

假设我在 C 中有一个数组

int array[6] = {1,2,3,4,5,6}

我怎么能把它分成

{1,2,3}

{4,5,6}

这可以使用 memcpy 吗?

谢谢你,

诺诺诺

最佳答案

当然。直接的解决方案是使用 malloc 分配两个新数组,然后使用 memcpy 将数据复制到两个数组中。

int array[6] = {1,2,3,4,5,6}
int *firstHalf = malloc(3 * sizeof(int));
if (!firstHalf) {
/* handle error */
}

int *secondHalf = malloc(3 * sizeof(int));
if (!secondHalf) {
/* handle error */
}

memcpy(firstHalf, array, 3 * sizeof(int));
memcpy(secondHalf, array + 3, 3 * sizeof(int));

但是,如果原始数组存在的时间足够长,您甚至可能不需要这样做。您可以通过使用指向原始数组的指针将数组“拆分”为两个新数组:

int array[6] = {1,2,3,4,5,6}
int *firstHalf = array;
int *secondHalf = array + 3;

关于c - 如何在C中将数组拆分为两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850000/

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