假设我在 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/