c - 在数组中使用 memcpy 删除

标签 c arrays memcpy

给定一个索引和一个整数数组,我需要通过使用 memcpy() 删除给定数组中存储在给定索引中的元素。新的元素集将存储在给定的数组中。

这是我想做的事情的一个例子,尽管我在实现它时遇到了困难。

enter image description here

所以 arrayElem 在删除 10 之后看起来像这样:

enter image description here

最佳答案

您不能使用 memcpy ,因为源和目标重叠,但您可以使用 memmove ,例如:

memmove(&a[1], &a[2], 5 * sizeof(a[0]));

这会将从 a[2] 开始的 5 个元素向下复制到从 a[1] 开始的 5 个元素,注意源和目标区域重叠。

关于c - 在数组中使用 memcpy 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31320242/

相关文章:

memcpy - memcpy 不安全吗?

c - vector 中的*是什么?

c - FFMPEG - C API - GIF 创建

c - 将 char 数组反序列化为 int 和 int[] 以及 struct?

javascript - 无法使用 Laravel Mix 在 Vue 组件中访问 js-cookie

javascript - 从另一个数组中的数组中删除对象

python - 如何使用 PyCUDA 处理 python 列表?

c - 使用套接字通信在 stdout 上打印的剩余字符

php - 我们如何计算 aaray 的结束位置?

c - memcpy 在不同的编译器中给出不同的输出