l如何使用memcpy复制数组? A [0] = B [40],A [1] = B [41],A [2] = B [42]

问题描述 投票:0回答:2
for (i = 0; i < n1; i++) 
   L[i] = arr[l + i]; 

因为我想复制一个大数组,听说需要使用memcpy。

c memcpy
2个回答
2
投票

memcpy顾名思义,复制存储区。是C下的string.h标准功能。

void *memcpy(void *dest, const void *src, size_t n); 

说明:

memcpy()函数将n个字节从存储区src复制到内存 地区目的地存储区域不得重叠。如果memmove(3) 内存区域确实重叠。 memcpy()函数返回一个指向目标的指针。

因此您的电话是:

memcpy(L, &arr[1], n1*sizeof(arr[1]));

一个数组元素的大小为:

sizeof(arr[1])

1
投票
memcopy(destination, source, length)

在您的情况下:

int len = sizeof(int) * n1;
memcopy(L, arr+l, len);

注意:您可能必须根据所使用的类型来固定长度计算。此外,如果要处理字符串,您还应该记住加1以包含\ 0字符,该字符终止char数组。

© www.soinside.com 2019 - 2024. All rights reserved.