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

wordpress网站多语言网页在线生成

wordpress网站多语言,网页在线生成,wordpress主题商城,雅安交通建设集团网站目录 1.memcpy *简单使用 翻译: *模拟实现 注意事项: *例题 1.memcpy *简单使用 memcpy:memory copy cplusplus的介绍 点我跳转 翻译: 函数 memcpy void * memcpy ( void * destination, const void * source, size_t num ); 复制内存块 直接从source指向的位置复制num…

目录

1.memcpy

*简单使用

翻译:

*模拟实现

注意事项:

*例题


1.memcpy

*简单使用

memcpy:memory copy

cplusplus的介绍 点我跳转

翻译:

函数

memcpy


void * memcpy ( void * destination, const void * source, size_t num );

复制内存块

直接从source指向的位置复制num个字节到destination指向的内存块(memory block)

由destination和source指针指向对象的潜在类型与这个函数无关(因为destination和source的类型为void*,没有限制);结果是以二进制复制的数据

这个函数不检查由sorce指向的字符串中的\0(即"免疫"\0) - 总是精确复制num个字节

为了避免溢出,由destination和source指针指向的数组应该至少为num个字节,而且两者不能重叠(对于重叠的内存块,memmove是一种更安全的方法)

参数


目标(destination):指向内容需要复制的目标数组,类型转换至一个void*类型的指针

源(source):指向要被复制的源的数据,类型转换至一个const void*类型的指针

个数(num):要复制的字节个数,size_t是无符号整型

返回值


目标被返回

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{int arr1[] = { 1,2,3,4 };int arr2[4] = { 0 };memcpy(arr2, arr1, 2 * sizeof(int));//拷贝arr1的前两个元素return 0;
}

注意:arr1一个元素占4个字节,应用sizeof(int)来控制复制的元素个数

 

*模拟实现

设计一个函数sim_memcpy,和memcpy一样有3个参数

destination简写为dest,source简写为src

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
void* sim_memcpy(void* dest, const void* src, size_t num)
{void* ret = dest;//设置返回值assert(dest && src);//确保不是空指针while (num--){//要以字节为单位复制,就要强制类型转换为char**(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}return ret;
}int main()
{int arr1[] = { 1,2,3,4 };int arr2[4] = { 0 };sim_memcpy(arr2, arr1, 2 * sizeof(int));//拷贝arr1的前两个元素return 0;
}

下断点调试后

注意事项:

1.

指针移动时不能按上方的图来写,void*没有指定类型,无法进行运算

修改过后任然无法通过,显示error C2036: “void *”: 未知的大小

优先级:++ > 强制类型转换,dest++ 会先执行自增操作,然后再将 dest 的值转换为 char*。但是这种写法并不能达到预期的效果,因此显示错误

改为即可

2.void类型的函数和void*类型的函数有区别

void类型的函数不用返回值

void*类型的函数返回一个指向某种类型(任意类型,不需要强制类型转换)的指针

*例题

欲将arr[0]~arr[4]的内容复制到arr[2]~arr[6]中,以下代码是否能成功执行?

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
void* sim_memcpy(void* dest, const void* src, size_t num)
{void* ret = dest;//设置返回值assert(dest && src);//确保不是空指针while (num--){//要以字节为单位复制,就要强制类型转换为char**((char*)dest) = *((char*)src);dest = (char*)dest + 1;src = (char*)src + 1;}return ret;
}int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };sim_memcpy(arr+2, arr, 5* sizeof(int));return 0;
}

答案速查:

分析:

由于指针有重叠,内容被覆盖,所以不行

但调用VS的memcpy没有出现这样的情况

说明VS制作的memcpy函数超过了C11的标准

http://www.yayakq.cn/news/23376/

相关文章:

  • 企业网站建设安阳微博推广渠道
  • 做外贸c2c网站有哪些系统开发案例
  • 如何申请域名邮箱模板网站如何做优化
  • 网站建设 南宁莞城区网站建设公司
  • 价格划算的东莞建网站公司怎么做微信小程序卖东西
  • 做内贸要在哪个网站找客户汽车设计网站大全
  • 网站登录页面模板房产信息网网站
  • 盘锦微商网站建设wordpress 菜单 下拉菜单
  • 国内酒店网站建设自学软件网站开发
  • 网站建设xyhlrj网页设计尺寸参考表
  • 北京微网站设计开发服务宣传栏制作效果图
  • 阿里云建站流程外卖做的比较好的网站
  • jsp网站购物车怎么做如何做一个网站的功能吗
  • 视频分享网站建设游戏交易类网站seo怎么做
  • 网上网站怎么做陕西住房与城乡建设部网站
  • 专业建设网站哪家好怎么做服务器网站下载链接
  • 站群系统有哪些网站做百度百科
  • 网站正能量破解版下载大全安装手机制作视频
  • 怎么做自己的cms导购网站网站建设的安全性
  • 网站建设怎么报价表网络公司给我做网站我有没有源代码版权吗?
  • 三明市网站建设平面设计相关的网站有哪些内容
  • 定服装网站建设台州网站建设找哪家好点
  • 幸运28网站建设id怎样转wordpress
  • 百度网站优化软件杭州缪斯设计有限公司
  • 做自媒体关注的网站wordpress 为知笔记
  • 浏阳做网站的公司价格网页浏览器有哪些
  • 网站服务器如何搭建新乡网站开发
  • 贵州做网站的公司有哪些秦皇岛市教育局
  • 做dj网站需要公司网站静态模板
  • 惠州做棋牌网站建设哪家公司便宜seo网站优化服务