memset 就是初始化用的
memcpy和memmove()是复制用的。
原型如下:
函数解释:将 s 中前 n 个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
memcpy和memmove
函数解释:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
memmove在copy两个有重叠区域的内存时可以保证copy的正确,而memcopy就不行了,但memcopy比memmove的速度要快一些,
1.void *mymemmove(void *dest, const void *src, size_t n) 2.{ 3. char temp[n]; 4. int i; 5. char *d = dest; 6. const char *s = src; 7. 8. for (i = 0; i < n; i++) 9. temp[i] = s[i]; 10. for (i = 0; i < n; i++) 11. d[i] = temp[i]; 12. 13. return dest; 14.}
1.void *mymemcpy(void *dest, const void *src, size_t n) 2.{ 3. char *d = dest; 4. const char *s = src; 5. int *di; 6. const int *si; 7. int r = n % 4; 8. 9. while (r--) 10. *d++ = *s++; 11. di = (int *)d; 12. si = (const int*)s; 13. n /= 4; 14. while (n--) 15. *di++ = *si++; 16. 17. return dest; 18.}