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

测试因strcpy执行拷贝引起的内存溢出

#include "string.h" //strcpy()需要包含string.h头文件

typedef struct{

char buf1[5]; //声明char型数组buf1[]

char buf2[5]; //声明char型数组buf2[]

    char buf3[10];//声明char型数组buf3[]

}MemoryStruct;

MemoryStruct MEM={0};

void Test_MemoryOverflow(void)

{

MEM.buf3[0]='1';MEM.buf3[1]='2';MEM.buf3[2]='3';

MEM.buf3[3]='4';MEM.buf3[4]='5';MEM.buf3[5]='6';MEM.buf3[6]='\0';

strcpy(MEM.buf1,MEM.buf3); //将buf3[]中的字符串拷贝到buf1[]中

}

仿真后,发现目标数组buf1[]不够大,而buf3[]中的源字符串的长度太长,会造成“内存溢出”,结果见下图:

同理可以测试strncpy()函数。

http://www.dtcms.com/a/172882.html

相关文章:

  • Unity:AddTorque()(增加旋转力矩)
  • zst-2001 历年真题 程序设计语言
  • ecat总线6000段定义
  • [USACO1.1] 坏掉的项链 Broken Necklace Java
  • DockerDesktop替换方案
  • Spring Boot 集成 Solr 的详细步骤及示例
  • 36.金属壳体材料的选择与工艺处理对EMC的影响
  • C++ STL 容器详解:vector、string 和 map 的完全指南
  • kotlin中枚举带参数和不带参数的区别
  • C# 方法(局部函数和参数)
  • DDR在PCB布局布线时的注意事项及设计要点
  • SpringMVC框架详解与实践指南
  • 字符串,数组,指针之间的关系
  • 【NLP】 26. 语言模型原理与概率建模方法详解(Language Models)
  • FreeRTOS学习系列·二值信号量
  • TCP 与 UDP报文
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》封面颜色空间一图的选图历程
  • linux系统基本操作命令
  • asyncio:Python的异步编程
  • Lua 元表和元方法
  • 【ArcGIS Pro微课1000例】0066:多边形要素添加折点,将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段?
  • Webug4.0靶场通关笔记16- 第20关文件上传(截断上传)
  • 【NLP】 31. Retrieval-Augmented Generation(RAG):KNN-LM, RAG、REALM、RETRO、FLARE
  • # 从零构建一个简单的卷积神经网络:手写数字识别
  • 【Unity】AssetBundle热更新
  • HTML 元素
  • 冷启动算法简介和示例
  • 【了解】数字孪生网络(Digital Twin Network,DTN)
  • 代码随想录算法训练营第60期第二十七天打卡
  • ABC 404