【面试题】C语言:模拟实现内存放置函数memset()
来源:互联网 发布:股票智能交易软件 编辑:程序博客网 时间:2024/06/17 13:41
模拟实现内存放置函数memset():
我们查看库函数可知,函数原型为:
void * __cdecl memset ( void *dst, int val, size_t count)。
我们常用于将数组arr向后几个字节初始化置为0,而并不怎么用于置为其他元素,如1。这是因为:
val = 1,是int型,将它赋给char型dest,则只把低八位赋给dest,下次再接着循环,每次都只把一个字节长度的1赋给dest。如此重复count次,结束。在输出过程中,而arr是int型,一个int型是4个char型,即每次输出的结果都是:1000 0000 1000 0000 1000 0000 1000 0000这个十进制的值。
代码如下:
void* my_memset(void* p1, int val, size_t count){ char* dest = p1; char* strdest = dest; while (count) { *dest = val; dest++; count--; } return strdest;}int main(){ char arr[] = "almost every programmer should know memset!"; char* ret = memset(arr, '-', 6); printf("%s", ret); system("pause"); return 0;}
本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1715689
0 0
- 【面试题】C语言:模拟实现内存放置函数memset()
- c语言内存管理函数,模拟memcpy、memmove(实现内存重叠拷贝)、memset
- C语言模拟实现memset.memcmp函数
- 【C语言】【面试题】【笔试题】模拟实现strstr函数
- 【C语言】【笔试题】模拟实现memset
- C语言模拟实现memcpy、memmove、memset
- 【C语言】【面试题】【笔试题】模拟实现数据库中memmove函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中memcpy函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcpy函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcat函数
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcmp函数
- C语言中内存操作函数memset
- 【C语言】模拟实现memmove函数(考虑内存重叠)
- 【C语言】【面试题】【笔试题】模拟实现strncmp
- 【C语言】【面试题】【笔试题】模拟实现strncpy
- C语言面试题---函数(一)
- C语言面试题---函数(二)
- memcpy/memset函数的c语言实现
- C语言:模拟实现strcpy
- 【笔试题】C语言:模拟实现strncmp
- 【笔试题】C语言:模拟实现strncat
- 线程简介
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- 【面试题】C语言:模拟实现内存放置函数memset()
- Context详解
- 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
- 常用正则表达式大全
- 【指针篇】C语言:指针与数组的区别,数组指针与指针数组的剖析。
- 【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
- C语言:使用malloc开辟一个3*4的二维数组,并将内容初始化为1-12.
- jsonString 与bean互转
- C语言:单链表的实现(包括:尾插、尾删、头插、头删、指定位置插入、长度、打印)