c - 在 c : Can I copy a whole portion of an array at once, 中,通过引用指向我要从中复制的数组中插槽位置的指针?

标签 c arrays pointers copy

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

例如—— 给定一个数组:A [ 1,2,3,4,5,7,8,3,2,5,1,0,9] - 我只想将数组的一部分从第 n 个插槽复制到数组 B [0 0 0 ..... ] 的开头(B 的长度与 A 相同)。

我可以一次完成吗,使用指针而不是循环?类似的东西 - 将指针切换到 B 中的第 1 个槽,指针指向 A 的第 n 个槽,以及 B 中的第 n 个槽和 A 中的最后一个槽?

提前致谢!

最佳答案

这就是 memcpy 是为了。

memcpy(B, A + n, (N - n) * sizeof(A[0]));

哪里NA 中的元素数.如果A确实是一个数组(不仅仅是指向一个的指针),那么 N可以是computed作为sizeof(A) / sizeof(A[0]) ,所以调用简化为

memcpy(B, A + n, sizeof(A) - n * sizeof(A[0]));

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

(很抱歉,我并没有真正遵循您所想的那种指针技巧,所以我无法对此发表评论。)

关于c - 在 c : Can I copy a whole portion of an array at once, 中,通过引用指向我要从中复制的数组中插槽位置的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108878/

相关文章:

javascript - 从列表数组中删除元素的最佳解决方案

javascript - Angular 改变个人值(value)会改变全局值(value)

c - 将.csv文件解析为C中的二维数组

c++ - 类型的指针数组

c - 对二维数组每行的所有最大元素求和

C/Linux : How to get users login name without `getlogin`

c - 使用 sscanf 解析不会保留数组以供后续使用

c++ - 返回指针(数组)时可能发生内存泄漏 (C++)

c++ - MPI_Irecv 在这个简单的代码中没有收到消息

c - 如何在代码C中将二进制转换为字符串