memmove
和memcpy
有什么区别?您通常使用哪一种?
最佳答案
使用memcpy
,目标根本不会与源重叠。使用memmove
可以。这意味着memmove
可能比memcpy
稍微慢一点,因为它无法做出相同的假设。
例如,memcpy
可能总是将地址从低到高复制。如果目标在源之后重叠,则意味着某些地址将在复制之前被覆盖。在这种情况下,memmove
将检测到该错误并向另一个方向复制-从高到低。但是,对此进行检查并切换到另一种算法(可能效率较低)需要花费时间。
关于c - memmove和memcpy有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1201319/