我需要移动一块malloced内存.目前我正在创建一个临时内存,然后将其复制并将它们重新复制回来 void * buf = malloc(5);void * temp = malloc(5);memcpy(temp, buf, 5); memset(buf, 0, 5);memcpy(buf, temp + 1, 4); 有没
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);