gpt4 book ai didi

c - 使用 memmove 代替 memcpy 的示例

转载 作者:行者123 更新时间:2023-12-01 18:12:17 27 4
gpt4 key购买 nike

区别:如果存在重叠,请使用 memmove 代替 memcpy

问:您能否提供一个发生重叠的任何 C lib 函数的实际场景,以便使用 memmove 代替 memcpy

最佳答案

这是一个:

// len => array length, idx => index where we want to remove
void removeAt(int* array, size_t* len, size_t idx)
{
// copy next values to replace current
// example: {1, 2, 3, 4} => {1, 3, 4}
// ^ remove
memmove(&array[idx], &array[idx+1], (--(*len) - idx) * sizeof(int));
}

编辑:对于出现在 C stdlib 函数的实现中的这一点,找到起来会有点困难,因为每个实现都可以做自己的事情, 大多数 stdlib 函数要求参数不重叠。

关于c - 使用 memmove 代替 memcpy 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com