当前位置: 首页 > news >正文

全景网站制作青岛 生物类网站建设

全景网站制作,青岛 生物类网站建设,网站对联代码,wordpress与oss相比于内存函数#xff0c;字符串函数和字符函数是对字符串和字符进行操作#xff0c;内存函数是对内存进行操的。下面跟大家分享我学到的几个内存函数。 memcpy函数 void* memcpy(void* dest, const void* sour, size_t num); dest是目标地址#xff0c;sour要拷贝的源地…相比于内存函数字符串函数和字符函数是对字符串和字符进行操作内存函数是对内存进行操的。下面跟大家分享我学到的几个内存函数。 memcpy函数 void* memcpy(void* dest, const void* sour, size_t num); dest是目标地址sour要拷贝的源地址num是要拷贝的字节数 因为内存函数是对内存进行操作如果对内存进行操作就不用受制于数据的类型所以这里使用void类型的指针因为void可以接受任何类型的指针便于操作。 memcpy函数的作用是从source的位置开始向后复制num个字节的数据到dest指向的内存位置当遇到\0的时候停下来如果source和dest在内存中的地址有重叠复制的结果是未知的。 memcpy函数的使用 int main() {int arr1[100] { 0 };int arr2[100] { 1,2,3,4,5 };memcpy(arr1, arr2, 20);//一个int类型是4个字节for (int i 0; i 5; i){printf(%d , arr1[i]);//输出结果为1 2 3 4 5}return 0; } memcpy函数的模拟 void* my_memcpy(void* dest, const void* sour, size_t num) {char* ret dest;//首先存一下dest的首地址//这里为了提高模拟度因为在库函数里memcpy函数返回值就是目标函数的首地址assert(dest ! NULL);assert(dest ! NULL);int count num;//因为是对内存进行操作所以需要一个字节一个字节的交换while (count--){*((char*)dest) *((char*)sour);(char*)dest ((char*)dest) 1;(char*)sour ((char*)sour) 1;}return ret; } memmove函数 void * memmove ( void * dest, const void * sour, size_t num ); 函数参数中的destsournum于memcpy函数的参数相同 memmove函数就是用来复制出现内存重叠的情况。 memmove函数的使用 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };memmove(arr, arr 2, 20);for (int i 0; i 10; i){printf(%d , arr[i]);}return 0; } 这里就出现了内存重叠的情况将 3 4 5 6 7 放到1 2 3 4 5 的位置上 其中替换的部分 3 4 5 是的内存是重叠的memmove就是用来处理这种情况 memmove函数的模拟  memmove函数的模拟相对于memcpy函数的模拟来说相对麻烦一些分为一下三种情况下面我们来一个一个分析。 第一种情况 第二种情况  第三种情况  代码部分 void* my_memmove(void* dest, const void* sour, size_t num) {void* ret dest;//记录目标位置的首地址//首先防止传进来的指针不为空assert(dest ! NULL);assert(sour ! NULL);//通过分析三种情况我们会发现如果dest指针小于sour指针就从前往后换//如果dest指针大于sour就需要从后往前换//如果dest的指针大于sournum从后往前或者从前往后都一样//判断dest和sourif (dest sour){while (num--){*(((char*)dest) num) *(((char*)sour) num);}}else if(dest sour || (char*)dest (char*)sour num){while (num--){*((char*)dest) *((char*)sour);(char*)dest ((char*)dest) 1;(char*)sour ((char*)sour) 1;}}return ret;//返回目标首地址 } int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };my_memmove(arr, arr 2, 20);for (int i 0; i 10; i){printf(%d , arr[i]);}return 0; } memset函数 是用来设置内存的将内存中的值以字节为单位设置成自己想要的内容。 void * memset ( void * ptr, int value, size_t num ); ptr要修改内存位置的首地址value要修改成的内容num要修改的字节数 memset函数的使用 int main() {char prt[] Hello Word;memset(prt, x, 5);printf(%s, prt);//输出结果为xxxxx Wordreturn 0; } memcmp函数 memcmp函数用来比较从prt1和prt2指针指向的位置开始往后m个字节的内容进行比较如果prt1大于prt2就返回一个非零的值反之小于就返回小于零的值如果等于就返回零。 memcmp函数的使用 int main() {char buf1[] asdfg;char buf2[] asdfi;int i memcmp(buf1, buf2, 5);printf(%d\n, i);if (i 0){printf(buf1buf2\n);}else if (i0){printf(buf1buf2\n);}else if (i0){printf(buf1buf2\n);}return 0; } 这些就是我所学到的C语言重的内存函数请大佬们多多指错感谢
http://www.hkea.cn/news/14295685/

相关文章:

  • 网页设计视频网站建设乌海网站开发
  • 网站seo百度百科网站如何绑定虚拟主机
  • 塘厦建设网站注册深圳公司新规定
  • 保安做网站河南专业网站建设创新中心
  • o2o电商网站建设地下城钓鱼网站如何做
  • 外贸网站后台国外著名购物网站排名
  • 房地产公司网站建设报价方案网站建设 实施计划书
  • 网站建设外包服务网站安全检测可以检测哪些内容风险信息
  • 藁城外贸网站建设长沙简单的网站建设公司
  • 设计商标的网站网站后台html5模板
  • 获取网站访客qq号码大专计算机专业主要学什么
  • 首页网站怎么做的国产成年做视频网站
  • 邯郸手机网站开发价格ie的常用网站
  • 网站建设公司华网天下买赠两年学院宣传网站制作
  • 站长工具网站推广网站速度对seo的影响
  • ae如何做视频模板下载网站四川网站建设哪家好
  • 如何用flashfxp上传网站网站开发工资一般多少钱
  • 合肥网站开发外包公众号商城怎么开
  • 网站无障碍建设规定建站一条龙的服务流程是怎么样的
  • 企业形象网站开发什么叫网页什么叫网站
  • 适合个人做外贸的网站网站假网站这么做
  • 博瑞微传媒建站快车作文网站高中
  • 山西网站推广如何优化网站代码
  • 友汇网网站建设管理后台设置百度做地图的网站
  • 宝安网站建设zrare学网页设计软件开发
  • dedecms win8风格网站模板网站开发课程论文
  • 个人网站备案做淘宝客备案的网站程序上传
  • 个人网站制作论文携程前端网站开发团队
  • 企业建站 wordpress网站后台链接怎么做
  • 网站建设杭州外贸网站一般用什么框架