当前位置 : 主页 > 手机开发 > 无线 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-10
我需要移动一块malloced内存.目前我正在创建一个临时内存,然后将其复制并将它们重新复制回来 void * buf = malloc(5);void * temp = malloc(5);memcpy(temp, buf, 5); memset(buf, 0, 5);memcpy(buf, temp + 1, 4); 有没
我需要移动一块malloced内存.目前我正在创建一个临时内存,然后将其复制并将它们重新复制回来

void * buf = malloc(5);
void * temp = malloc(5);

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

有没有更好的方法呢?

是的,使用memmove:

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

memmove(buf, buf + 1, 4);
memset(buf + 4, 0, 1);
网友评论