在c:我可以通过引用指向要复制的数组中插槽位置的指针,一次复制数组的整个部分吗?

use*_*107 0 c arrays pointers copy

希望我的问题是明确的和相关的,对指针来说是新的... - 我可以通过引用指向我想要开始复制的数组中第一个插槽位置的指针,一次复制一个数组的整个部分吗?

例如 - 给定一个数组:A [1,2,3,4,5,7,8,3,2,5,1,0,9] - 我想只从n'复制数组的一部分th slot,进入数组B的开头[0 0 0 .....](B的长度与A相同).

我可以使用指针而不是循环一次完成吗?有点像 - 将指针切换到B中的第1个插槽,指针指向A的第n个插槽,B中的第n个插槽指向A中的最后一个插槽?

非常感谢提前!

Fre*_*Foo 6

memcpy是为了什么.

memcpy(B, A + n, (N - n) * sizeof(A[0]));
Run Code Online (Sandbox Code Playgroud)

在哪里N是元素的数量A.如果A它实际上是一个数组(不只是一个指针),那么N可以计算sizeof(A) / sizeof(A[0]),所以调用简化为

memcpy(B, A + n, sizeof(A) - n * sizeof(A[0]));
Run Code Online (Sandbox Code Playgroud)

memcpy住在<string.h>; 它的第一个参数是副本的目标,第二个参数是源.

(对不起,我并没有真正遵循你想到的那种指针技巧,所以我不能对此发表评论.)