memset

来源:互联网 发布:在淘宝网上买车可靠吗 编辑:程序博客网 时间:2024/05/19 19:59
/*将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。注意: 字节的内容全部设置为ch指定的ASCII值.*/#include <stdio.h>#include <string.h>void* memset_c(void *dst, int n, size_t count);void* memcpy_c(void *dst, void *src, size_t count);struct{char name[15];int age;}person_src, person_dst;int main(void){char name[] = "luohan";memcpy_c(person_src.name, name, strlen(name) + 1);person_src.age = 24;printf("person_src name: %s, age: %d\n", person_src.name, person_src.age);memcpy_c(&person_dst, &person_src, sizeof(person_src));printf("person_dst name: %s, age: %d\n", person_dst.name, person_src.age);memset_c(&person_src, '-', sizeof(person_src));printf("person_src name: %s, age: %c\n", person_src.name, person_src.age);memset_c(&person_dst, 0, sizeof(person_dst));printf("person_dst name: %s, age: %d\n", person_dst.name, person_dst.age);char str[] = "almost every programmer should know memset";memset_c(str, '-', 6);puts(str);return 0;}void* memset_c(void *dst, int val, size_t count){void *start = dst;while(count--){*(char*)dst = (char)val;dst = (char*)dst + 1;}return start;}void* memcpy_c(void *dst, void *src, size_t count){void *start = dst;while(count--){*(char*)dst = *(char*)src;dst = (char*)dst + 1;src = (char*)src + 1;}return start;}

0 0
原创粉丝点击