面试
cnki_ok
这个作者很懒,什么都没留下…
展开
-
库函数一
char * __cdecl strcpy(char * dst, const char * src) { char * cp = dst; while( *cp++ = *src++ ) ; /* Copy src over dst */ return( dst ); }转载 2014-08-19 19:49:13 · 491 阅读 · 0 评论 -
面试中strcpy源码的判分标准
如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案: 2分 void strcpy( char *strDest, char *strSrc ) { while( (*strDest++ = * strSrc++) != ‘\0’ ); } 4分 void strcpy( c转载 2014-08-19 20:14:31 · 799 阅读 · 0 评论 -
c库函数
void * __cdecl memmove ( void * dst, const void * src, size_t count ) { void * ret = dst; #if defined (_M_IA64) || defined (_M_AMD64) {转载 2014-08-20 08:30:04 · 575 阅读 · 0 评论 -
memcopy和memmove的区别(笔试,面试)
Memcopy和memmove函数在linux下看了一下两个函数的源码。 两个函数都在头文件string.h中定义,函数原型为: void * __cdecl memcpy ( void * dst,const void * src,size_t count); void * __cdecl memmove ( void * dst,const void * src,size_t转载 2014-08-20 08:34:06 · 628 阅读 · 0 评论 -
面试题 实现memmove函数
【题目】 用C语言实现函数void *memmove(void *dest, const void *src, size_t n)。memmove函数的功能死拷贝src所指向内存内容前n个字节到dest所指的地址上。 【例子】 源字符串是hello word!,要求目标字符串也是helloword!。 【分析】 作为公用库函数,请注意安全检查,注意处转载 2014-08-20 08:51:06 · 781 阅读 · 0 评论 -
memset实现
void *memset11(void *dst,int val,size_t n) { void *start = dst; while (n--) { *(char*)dst=(char)val; dst=(char *)dst+1; } return start; }转载 2014-08-20 09:25:22 · 519 阅读 · 0 评论 -
关于实现memcpy和memmove两个库函数的一点体会
最近在论坛上看了一篇关于阿里巴巴面试题的帖子,让自己实现memcpy库函数,要求考虑特殊情况,两段内存存在覆盖,以及指针为空的情况。下面是我对此问题的几点看法(可能还有理解不到的地方)和最终修改的代码。 几点结论: 1,memcpy实现从源source中拷贝n个字节到目标destin中,src源数据应该保留。 2,memmove实现移动一块字节,src源数据可以不保留。转载 2014-08-20 08:51:42 · 646 阅读 · 0 评论 -
算法面试题
1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结构如下: struct BSTree转载 2014-08-18 10:32:46 · 1123 阅读 · 0 评论