移动一块malloc内存的最简单方法

时间:2013-04-23 21:29:18

标签: c

我需要移动一块malloced内存。目前我正在创建一个临时内存,然后将其复制并使用shift

重新复制它
void * buf = malloc(5);
void * temp = malloc(5);

memcpy(temp, buf, 5); 
memset(buf, 0, 5);
memcpy(buf, temp + 1, 4);

有更好的方法吗?

1 个答案:

答案 0 :(得分:12)

是的,请使用memmove

char * buf = malloc(5);   // pointer arithmetic only on chars!

memmove(buf, buf + 1, 4);
memset(buf + 4, 0, 1);