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

做企业网站的步骤织梦做的网站前面有不安全

做企业网站的步骤,织梦做的网站前面有不安全,西安企业,网红网站建设官网前言 前面两篇文章介绍了字符串函数#xff0c;不过它们都只能用来处理字符串#xff0c;C语言中也内置了一些内存函数来对不同类型的数据进行处理#xff0c;本文将介绍#xff1a;memcpy()使用以及模拟实现#xff0c;memmove()使用以及模拟实现#xff0c;memset()使用…前言 前面两篇文章介绍了字符串函数不过它们都只能用来处理字符串C语言中也内置了一些内存函数来对不同类型的数据进行处理本文将介绍memcpy()使用以及模拟实现memmove()使用以及模拟实现memset()使用memcmp()使用。 目录 前言 memcpy()使用以及模拟实现 memmove()使用以及模拟实现 memset()使用 memcmp()使用 memcpy()使用以及模拟实现 函数参数及其返回类型: void* memcpy(void* destination, const void* source ,size_t num); //返回值为目标空间的起始地址 作用 从源地址起复制num个字节到目标地址 注意点 ①memcpy函数不负责重叠内存的情况如果源地址和目的地址有任何重叠结果都是未定义的 ②头文件string.h 使用举例 模拟实现 //memcpy模拟实现 #includeassert.h void* my_memcpy(void* s1, const void* s2, size_t num) {assert(s1 s2);//防止传入空指针void* p1 s1;//使用一个值保存首地址等下好返回首地址while (num--) {*(char*)s1 *(char*)s2;(char*)s1 (char*)s1 1;//不能使用(char*)s1因为(char*)强制类型转换和自增都是表达式//因为第一个表达式执行后是临时的转换结果没被保存下来(char*)s2 (char*)s2 1;}return p1; } int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int arr1[10] { 0 };int i 0;my_memcpy(arr1, arr, sizeof(arr));for (i 0; i sizeof(arr) / sizeof(arr[0]); i) {printf(%d , arr1[i]);}return 0; } 运行结果 memmove()使用以及模拟实现 函数参数及其返回类型: void* memmove(void* destination, const void* source ,size_t num); //返回值为目标空间的起始地址 作用 从源地址起复制num个字节到目标地址memmove函数能完全代替memcpy函数尽量使用memmove函数 注意点 ①memcpy函数和memmove函数最大区别就是memmove函数能实现源地址和目的地址有重叠的拷贝所以memmove函数能完全代替memcpy函数 ②头文件string.h 使用举例 模拟实现 前面我们已经实现了memcpy函数的模拟实现现在我们面临唯一问题就是如何解决源地址和目的地址有重叠的拷贝经过分析我们发现重叠其实有两种情况 ①源头地址大于目标地址时 源地址从后往前拷贝 ②目的地址大于源头地址时 源地址从前往后拷贝 代码 //memmove模拟实现 #includestring.h #includeassert.h void* my_memmove(void* s1, const void* s2, size_t num) {assert(s1 s2);void* ret s1;if (s2 s1) {//①源头地址大于目标地址时while (num--) {*((char*)s1num) *((char*)s2num);}}else {//②目的地址大于源头地址时while (num--) {*(char*)s1 *(char*)s2;(char*)s1 (char*)s1 1;(char*)s2 (char*)s2 1;}}return ret; } int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };my_memmove(arr 5, arr, sizeof(arr[0]) * 5);for (int i 0; i sizeof(arr) / sizeof(arr[0]); i) {printf(%d , arr[i]);}return 0; } 运行结果 memset()使用 函数参数及其返回类型: void* memset(void* ptr, int value ,size_t num); //返回值为被填充空间的起始地址 作用 用来设置内存将内存空间以字节为单位设置成想要内容 注意点 ①是以字节为单位设置的当为int类型设置时可能出错 ②头文件string.h 使用举例 memcmp()使用 函数参数及其返回类型: int memcmp(const void* ptr1, const void* ptr2,size_t num); //返回值是大于大于0的数等于0小于小于0的数 作用 比较两块空间前num个字节 注意点 ①是以字节为单位比较 ②头文件string.h 使用举例
http://www.w-s-a.com/news/619975/

相关文章:

  • 开通公司网站免费的网站app下载
  • 跨境电商网站模板wordpress壁纸
  • 国内做网站网站代理电子商务网站建设与维护概述
  • 如何做地方网站推广沈阳网势科技有限公司
  • 哈尔滨网站优化技术涵江网站建设
  • 做网站搞笑口号wordpress全屏动画
  • 怎么可以建网站小程序代理项目
  • 怎样做软件网站哪个网站用帝国cms做的
  • 网站开发编程的工作方法wordpress dux-plus
  • 廊坊电子商务网站建设公司网站进不去qq空间
  • 南宁网站推广费用创意网页设计素材模板
  • 深圳技术支持 骏域网站建设wordpress 酒主题
  • 东莞网站建设+旅游网站改版数据来源表改怎么做
  • 手机端做的优秀的网站设计企业做网站大概多少钱
  • 优化网站使用体验手机网站解析域名
  • 网站制作 商务做网站的软件名字全拼
  • 阿里巴巴网官方网站温州网站建设设计
  • 传奇购买域名做网站国外网站设计 网址
  • 西安凤城二路网站建设seo网站是什么
  • 网站后台如何更换在线qq咨询代码在线种子资源网
  • 东莞网站优化制作免费中文wordpress主题下载
  • 东莞建筑设计院排名网络优化论文
  • 做牙工作网站郑州前端开发培训机构
  • 温州专业建站网站制作的管理
  • 公司网站开发策划书有没有专门做教程的网站
  • 江苏省工程建设信息网站一天赚1000块钱的游戏
  • 制作响应式网站报价品牌建设整体体系包括什么
  • 网站推广策划报告目前做win7系统最好的网站
  • 东莞网站建设咨询公江西网站建设平台
  • 什么是网站功能源码下载站