当前位置: 首页 > 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()函数。

相关文章:

  • 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 元表和元方法
  • 科技赋能文化体验,“五一”假期“海昏侯”人气创新高
  • 山大齐鲁医院回应护士论文现“男性确诊子宫肌瘤”:给予该护士记过处分、降级处理
  • 《开始推理吧3》:演员没包袱,推理更共情
  • 新华每日电讯“关爱青年成长”三连评:青春应有多样的精彩
  • 媒体:机票盲盒值不值得开?年轻人正用行为博弈的逻辑重构规则
  • 经济日报社论:书写新征程上奋斗华章