gpt4 book ai didi

在没有 memcpy 的情况下连接 2 个数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:11 25 4
gpt4 key购买 nike

假设我有

int *a,*b;  
a= malloc(5*sizeof(int));
b= malloc(5*sizeof(int));

然后赋值。

让 a - 1, 2, 3, 4, 5
b - 6, 7, 8, 9, 10

是否有一种方法可以连接这两个 malloced 数组而无需进一步使用 mallocreallocmemcpy?不应该有 10 个位置的 malloc!

我必须能够在执行后得到 a[8]=9,而无需移动数组的开销。语言是C

最佳答案

a= malloc(5*sizeof(int));

您只为 a 分配了 5 个整数,所以不,如果没有某种形式或内存分配 (malloc/realloc),您将无法做到这一点,因为 a[8] 一开始就是非法的

I must be able to get a[8]=9 after executing, without the overhead of moving the arrays

由于您使用的是连续的内存区域(您称之为数组)移动元素时总会有一些开销。如果您不需要通过索引访问元素,只需使用链表即可。

关于在没有 memcpy 的情况下连接 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9173439/

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