for (i = 0; i < n1; i++)
L[i] = arr[l + i];
因为我想复制一个大数组,听说需要使用memcpy。
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])
memcopy(destination, source, length)
在您的情况下:
int len = sizeof(int) * n1;
memcopy(L, arr+l, len);
注意:您可能必须根据所使用的类型来固定长度计算。此外,如果要处理字符串,您还应该记住加1以包含\ 0字符,该字符终止char数组。