c语言中memmove用法,C语言中memcpy、memset和memmove的实现 | 您所在的位置:网站首页 › C语言中的count › c语言中memmove用法,C语言中memcpy、memset和memmove的实现 |
1) memcpy(): 主要实现的是两段内存的复制 2) memset(): 实现对一段内存进行初始化 3)memmove(): 主要是实现一段内存的内容移动到另一段内存。 实现的代码如下: #include #include #include void* Mymemcpy(void* dest, const void* src, unsigned int size) { unsigned int i = 0; char* p = (char*)dest; char* q = (char*)src; assert(dest != NULL && src != NULL); if(size > 0) { while((i < size) && (*(p + i) = *(q + i))) i++; return dest; } return NULL; } void* Mymemset(void* dest, int ch, unsigned int size) { unsigned int i = 0; unsigned char* p = (unsigned char*)dest; while((i < size) && (*(p + i) = ch)) { i++; } return dest; } void* Mymemmove(void* dst, const void* src, unsigned int count) { void *ret = dst; if(dst = ((char*)src + count)) { while(count--) { *(char*)dst = *(char*)src; dst = (char*)dst + 1; src = (char*)src + 1; } } else { dst = (char*)dst + count - 1; src = (char*)src + count - 1; while(count--) { *(char*)dst = *(char*)src; dst = (char*)dst - 1; src = (char*)src - 1; } } return(ret); } int main() { int size; char* p = (char*)malloc(10 * sizeof(char)); char* dst = (char*)malloc(5 * sizeof(char)); Mymemset(p,'a',10); puts(p); Mymemmove(dst, p, 5); puts(dst); system("pause"); return 0; } |
CopyRight 2018-2019 实验室设备网 版权所有 |