memset与memcpy的用法

来源:互联网 发布:java page cache 编辑:程序博客网 时间:2024/05/20 00:13

           最近编程过程中,一直遇到mencpy和menset,于是将其用法做个总结,方便后续查阅。

memcpy:

                函数原型:extern void *memcpy(void *dest, void *src, unsigned int count);

                头文件:#include <string.h>

                功能:由src所指内存区域复制count个字节到dest所指内存区域。

                说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。可以拿它拷贝任何数据类型的对象。

             eg:  char a[100],b[50]; 

                       memcpy(b, a, sizeof(b));     //注意如用sizeof(a),会造成b的内存地址溢出。


memset:

              函数原型:extern void *memset(void *buffer, int c, int count);

              头文件:#include <string.h>

              功能:把buffer所指内存区域的前count个字节(buffer指针后的前count个字节)设置成字符c。

              说明:返回指向buffer的指针。用来对一段内存空间全部设置为某个字符。

              eg:char a[100];

                      memset(a, '\0', sizeof(a));


               ps:一般可以用memset可以方便的清空一个结构类型的变量或数组。