Advertisement

C++数据结构和算法(01)

阅读量:

首先,从一道基础题目入手:

提供了一个接口的定义,请尝试完成:Memmove 的具体实现

复制代码
 void *memmove(void *dest,const void *src,size_t n)

    
 {
    
 }
    
    
    
    

该函数的目的是将内存中从src指向的区域内容复制到dest所指向的区域,复制的长度为固定值n,具体实现方式如下所示

需要特别注意的是,实际开发过程中可能存在的一些常见错误类型(此时或许应该重新回顾一下C++的相关知识/(ㄒoㄒ)/~~)

  1. 对内存区域重叠情况缺乏合理处理
  2. 临时存储变量使用不当或未能及时释放
  3. 缺乏对越界访问内存情况的检测机制
  4. 对指针操作相关知识掌握不牢固

接下来展示一段存在缺陷的代码示例:

复制代码
 void *memmove(void *dest,const void *src,size_t n)

    
 {
    
     char *p1=dest;
    
     char *p2=src;
    
     while(*p2!=\0)
    
     *p1++=*p2++;
    
     return p1;

全部评论 (0)

还没有任何评论哟~