memcpy函数的实现

1.按1个字节拷贝
(1)不要直接使用形参,要转换成char*
(2)目标地址要实现保存
(3)要考虑源和目标内存重叠的情况

void * mymemcpy(void *dest, const void *src, size_t count)
{if (dest == NULL || src == NULL)return NULL;char *pdest = static_cast <char*>(dest);const char *psrc  = static_cast <const char*>(psrc);int n = count;if (pdest > psrc && pdest < psrc+count){for (size_t i=n-1; i != -1; --i){pdest[i] = psrc[i];}}else{for (size_t i= 0; i < n; i++){pdest[i] = psrc[i];}}return dest;
}

2.按4个字节拷贝
(1)转成int*,按照每次4个字节来拷贝,不足四个字节的按一个字节拷贝

void *mymemcpy(void *dst,const void *src,size_t num)
{assert((dst!=NULL)&&(src!=NULL));int wordnum = num/4;//计算有多少个32位,按4字节拷贝int slice = num%4;//剩余的按字节拷贝int * pintsrc = (int *)src;int * pintdst = (int *)dst;while(wordnum--)*pintdst++ = *pintsrc++;while (slice--)*((char *)pintdst++) =*((char *)pintsrc++);return dst;
}
一个伟大公司的机会

转载于:https://www.cnblogs.com/wanghuaijun/p/11559852.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB中调用Weka设置方法(转)及示例

本文转自&#xff1a; http://blog.sina.com.cn/s/blog_890c6aa30101av9x.html MATLAB命令行下验证Java版本命令 version -java 配置MATLAB调用Java库 Finish Java codes.Create Java library file, i.e., .jar file.Put created .jar file to one of directories Matlab …

webpack4配置基础

前言 为什么要使用构建工具&#xff1f; 1.转换ES6语法&#xff08;很多老版本的浏览器不支持新语法&#xff09; 2.转换JSX 3.CSS前缀补全/预处理器 4.压缩混淆&#xff08;将代码逻辑尽可能地隐藏起来&#xff09; 5.图片压缩 6. .... 为什么选择webpack&#xff1f; 社区…

RESTful API概述

什么是REST REST与技术无关&#xff0c;代表的是一种软件架构风格&#xff0c;REST是Representational State Transfer的简称&#xff0c;中文翻译为“表征状态转移”。这里说的表征性&#xff0c;就是指资源&#xff0c;通常我们称为资源状态转移。 什么是资源&#xff1f; 网…

AI 《A PROPOSAL FOR THE DARTMOUTH SUMMER RESEARCH PROJECT ON ARTIFICIAL INTELLIGENCE》读后总结

本文转载&#xff1a; http://www.cnblogs.com/SnakeHunt2012/archive/2013/02/18/2916242.html 《A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence》&#xff0c;这是AI领域的开山之作&#xff0c;是当年达特茅斯会议上各路大牛们为期两个月…

第94:受限玻尔兹曼机

转载于:https://www.cnblogs.com/invisible2/p/11565179.html

安装完Ubuntu桌面后要做的(待续)

1. 为了快速而顺畅的更新&#xff0c;打开终端并输入以下命令来让系统使用新软件库&#xff1a; $ sudo apt-get update 2. 更改系统外观和行为 如果你想要更改桌面背景或图标大小&#xff0c;依次打开System Settings –> Appearance –> Look&#xff0c;并对桌面进…

算法第二章上机实践报告

一、实践题目 改写二分搜索算法 二、问题描述 这道题目主要是考验同学们在熟练掌握二分搜索法的前提下&#xff0c;对二分搜索的结构和运用有一个更加深刻的掌握。首先是要了解二分搜索的结构&#xff0c;其次&#xff0c;要了解二分搜索中的分治方法每一个步骤的用意&#xff…

windows远程登录 ubuntu Linux 系统及互连共享桌面

预备工作 #开启防火墙端口 sudo ufw allow 3389#安装ssh sudo apt-get install openssh-server一、windows直连Ubuntu16.04共享桌面 1、打开终端&#xff0c;安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients2、安装desktop sharing&#xff08;Ubuntu…

RAID详解

一、raid什么意思&#xff1f; RAID是“Redundant Array of Independent Disk”的缩写&#xff0c;中文翻译过来通俗的讲就是磁盘阵列的意思&#xff0c;也就是说RAID就是把硬盘做成一个阵列&#xff0c;而阵列也就是把硬盘进行组合配置起来&#xff0c;做为一个整体进行管理&a…

webpack4进阶配置

移动端CSS px自动转换成rem 需要两步来实现&#xff1a; px2rem-loader 在构建阶段将px转换成remlib-flexible 页面渲染时动态计算根元素的font-size值&#xff08;手机淘宝开源库&#xff09;下载插件并配置&#xff1a; npm i px2rem-loader lib-flexiblemodule: {rules: [{t…

MBR与GPT的区别

由于在服务器上装windows系统&#xff0c;一共有3个4T的硬盘&#xff0c;但是在windows系统下最大显示的为7T&#xff0c;这是因为3个4T硬盘做了Raid5&#xff0c;即&#xff1a;3.6Tx&#xff08;3-1&#xff09; 7T,大约是7T。由于单个移动硬盘大于2T&#xff0c;而MBR格式的…

Servlet-三大域对象

request request是表示一个请求&#xff0c;只要发出一个请求就会创建一个request&#xff0c;它的作用域&#xff1a;仅在当前请求中有效。用处&#xff1a;常用于服务器间同一请求不同页面之间的参数传递&#xff0c;常应用于表单的控件值传递。常用方法&#xff1a;request.…

装windows和Linux系统时找不到硬盘,pe安装系统没有出现磁盘,不能识别磁盘

装win7的时候&#xff0c;我们使用U盘装系统&#xff0c;找不到硬盘&#xff0c; 或者使用光盘装系统时 会出现 缺少所需的CD/DVD驱动器设备驱动程序 然后找遍整个硬盘/光盘也找不到合适的驱动&#xff0c;安装无法继续。 解决方法&#xff1a; ACHI模式下&#xff0c;PE里…

JSP四大域对象与九大内置对象

域对象的作用:保存数据,获取数据,共享数据.page&#xff1a;jsp页面被执行&#xff0c;生命周期开始&#xff0c;jsp页面执行完毕&#xff0c;生命周期结束&#xff08;jsp当前页面有效&#xff09;request&#xff1a;用户发送一个请求&#xff0c;生命周期开始&#xff0c;服…

解决ubuntu 15.04 安装matlab后无法找到matlab执行文件的问题

在ubuntu 15.04上安装好maltab R2015b之后&#xff0c;进入文件夹&#xff1a; /usr/local/MATLAB/R2015b/bin 没有发现matlab可执行文件&#xff0c;可是在文件管理器中又能搜索到matlab文件&#xff0c;是在其子目录glnxa64下。但进入子目录后&#xff0c;在终端输入命令&a…

一个写得很不错的vuex详解(转)

https://segmentfault.com/a/1190000015782272?utm_sourcetag-newest 转载于:https://www.cnblogs.com/hj0711/p/11577582.html

Linux 服务器上建立用户并分配权限

查看用户 whoami #要查看当前登录用户的用户名 who am i #表示打开当前伪终端的用户的用户名 who mom likes who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信…

HttpServletRequest

HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求&#xff0c;当客户端通过HTTP协议访问服务器时&#xff0c;HTTP请求头中的所有信息都封装在这个对象中&#xff0c;通过这个对象提供的方法&#xff0c;可以获得客户端请求的所有信息。 二、Request常用方法 2.…

Linux 释放cpugpu内存、显存和硬盘

free -m free -mtotal used free shared buff/cache available Mem: 128831 15666 23617 406 89547 111448 Swap: 130986 130977 9 total 内存总数 used 已经使用的内存数 free 空闲…

POS时机未到,POW强攻是实现全球货币的正确道路

POS时机未到&#xff0c;POW强攻是实现全球货币的正确道路 取代现今的货币体系的正确进攻方式是POW强攻&#xff0c;现在的货币是由力量背书的&#xff0c;以后的货币也是由力量背书的&#xff0c;只有因造币耗费的力量超过了所有其它力量的时候才能取代成功&#xff0c;才能消…