memset和memcpy和memcpy
1.函数原型
void *memcpy(void *dest, const void *src, int n);
编辑本段
功能
由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。
所需头文件
#include <string.h>
编辑本段
返回值
函数返回一个指向dest的指针。
说明
1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。
2.与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节。
3.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果
要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
//注意,source和destin都不一定是数组,任意的可读写的空间均可。---wk
2.函数简介
原型:void *memmove( void* dest, const void* src, size_tcount );
用法:#include <string.h>或#include <memory.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针
。
相关函数:memset、memcpy
编辑本段
程序示例
// memmove.c
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[]="Golden Global View";
memmove(s,s+7,strlen(s)+1-7);
printf("%s",s);
getchar();
return 0;
}
3.需要的头文件
在C中 <memory.h> or <string.h>
在C++中 <cstring>
编辑本段
函数原型
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节替换为ch并返回s;
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一
种最快方法。