头文件:
原型:void * memset( void * ptr, int value, size_t num );
ptr:指向首地址的指针
value:要设置的值
num:要设置多少个字节的空间
#include
#include
int main(){
int i;
char a[10]={'y','y','y','y','y','y','y','y','y','y'};
memset(&a[5],'c',5);
for(i=0;i<=9;i++){
printf("%c ",a[i]);
}
return 0;
}
<y y y y y c c c c c
memmove & memcpy: 拷贝一定长度的内存的内容
头文件:
原型:
void *memmove(void *a, const void *b, size_t count);
void *memcpy(void *dst, const void *src, size_t count);
将 b~b+count 赋到 a~a+count上
当内存发生局部重叠的时候:
memmove保证结果正确,memcpy不保证结果正确。
实际上,memcpy只是memmove的一个子集
memmove的实例:
#include
#include
int main(){
int i;
char s[] = "1234567890";
char* p1 = s;
char* p2 = s+2;
memmove(p2, p1, 5);
for(i=0;i<=9;i++){
printf("%c ",s[i]);
}
return 0;
}
输出1 2 1 2 3 4 5 8 9 0