Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++随笔(三)从一段溢出去理解printf函数的安全性

C++随笔(三)从一段溢出去理解printf函数的安全性

作者头像
Pulsar-V
发布于 2019-04-01 08:39:34
发布于 2019-04-01 08:39:34
1.3K00
代码可运行
举报
文章被收录于专栏:Pulsar-VPulsar-V
运行总次数:0
代码可运行

先贴代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
include <stdio.h>
int main() {
    char key[]="password";
    char b[]={'e','f'};
    char c[]={'g','h'};
    printf("%s",c);//输出ghefpassword
    return 0;
}

导致这样的结果的原因让我们回到printf的运行过程中,读到\0才会终止字符的读取,在上面声明的key,b,c三个变量中,内存是连续的,所以printf会一直读取到出现\0的password\0才会终止

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C/C++踩坑记录(二)一段有趣的常量字符串 原
测试平台: Ubuntu 16.04 Windows Mingw GCC gcc version 5.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)
Pulsar-V
2019/04/18
5290
C/C++踩坑记录(二)一段有趣的常量字符串
                                                                            原
C语言string.h所有函数汇总
void * memcpy ( void * destination, const void * source, size_t num );
WuShF
2023/02/15
7920
printf 和scanf 介绍-学习笔记
嘿,相信大家肯定对这两个函数不陌生吧!每次写代码都会用到它们。今天,就让我们来揭开它们神秘的面纱,看看它们到底有多厉害!
LonlyMay
2024/10/21
3850
printf 和scanf 介绍-学习笔记
C++随笔(一)关于用int来表示一个对象指针并复原问题
昨天群里一个老哥问我的,他去取了一个线程的DWORD地址,然后保存成为一个char* buffer,在接下来的使用过程中,把buffet内存储的指针地址赋值给一个变量hook那个线程,于是我寻思DWORD的定义
Pulsar-V
2019/04/01
6360
模拟实现不受限制的字符串函数--C语言版
C语言中提供了许多十分好用的库函数,一旦我们掌握了它们,我们使用C语言写代码就会变得更加得心应手。
用户9996207
2023/01/13
4540
完全理解C语言函数
在数学中,我们经常能听到各种函数,什么指数函数,对数函数,三角函数… 在维基百科中对函数的定义为:子程序
Yui_
2024/10/16
1000
完全理解C语言函数
gets()函数
1.描述 C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
Twcat_tree
2022/12/05
5790
gets()函数
【C语言指南】scanf()函数详解
关于printf()函数的详细介绍请看这篇文章C语言printf函数详解-CSDN博客
倔强的石头_
2024/12/06
7880
【C语言指南】scanf()函数详解
江哥带你玩转C语言 | 05-printf 和 scanf 函数
printf函数 printf函数称之为格式输出函数,方法名称的最后一个字母f表示format。其功能是按照用户指定的格式,把指定的数据输出到屏幕上 printf函数的调用格式为: printf("格式控制字符串",输出项列表 ); 例如:printf("a = %d, b = %d",a, b); 非格式字符串原样输出, 格式控制字符串会被输出项列表中的数据替换 注意: 格式控制字符串和输出项在数量和类型上***必须一一对应*** ---- 格式控制字符串 形式: %[标志][输出宽度][.精
极客江南
2021/07/11
1.4K0
C语言函数大全--a开头的函数
开始之前,引用一篇《基于Redis海量数据场景分布式ID架构实践》,该文通过比对不同实现方案的优缺点,帮助大家在分布式ID生成方面提供一些有益的参考和启示。有需要的朋友可以深入研究下!
huazie
2024/12/01
2240
C语言函数大全--a开头的函数
5.1 C/C++ 使用文件与指针
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
王 瑞
2023/10/10
2890
5.1 C/C++ 使用文件与指针
【C语言】scanf()与printf()详细介绍
scanf() 函数用于读取用户的键盘输入。 程序运行到这个语句时,会停下来 ,等待用户从键盘输入。用户 输入数据、按下回车键后, scanf() 就会处理用户的输入,将其存入变量。 它的原型定义在头文件 stdio.h 。
用户11290673
2024/09/25
5110
【C语言】scanf()与printf()详细介绍
C++中的输入函数scanf使用方法详解
scanf函数是C和C++中常用的输入函数之一,可以从用户输入的标准输入流stdin中读取格式为指定类型的数据。其基本用法如下:
很酷的站长
2023/08/25
3K0
C++中的输入函数scanf使用方法详解
C++随笔(二)用指针强制访问private的值
private本来是私有变量,外部无法访问的,但是抖个机灵,我们用指向类的指针和在类里面不断偏移我们的指针地址来访问私有成员变量的值。
Pulsar-V
2019/04/01
1.1K0
C/CPP输入输出函数汇总分析
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
CtrlX
2022/11/11
1.3K0
C进阶:文件的基础操作
下面是在 vs2013编译环境提供的 stdio.h 头文件中有以下的文件类型申明:
aosei
2024/01/23
1440
C进阶:文件的基础操作
云课五分钟-05一段代码修改-AI修改C++
所有的云课五分钟,不仅演示可行案例,也同样重视在尝试过程中的失败,并且也会全部展示出来。
zhangrelay
2023/11/17
2710
云课五分钟-05一段代码修改-AI修改C++
【C++】C++入门(一)
C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。来为学习C++类和对象打下基础。
zxctscl
2024/01/24
2610
【C++】C++入门(一)
江哥带你玩转C语言 | 17-文件操作
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是江哥持续更新的动力
极客江南
2021/07/11
1.1K0
在 C++ 中标记字符串与getline() 函数和字符数组
theme: channing-cyan highlight: a11y-dark
鲸落c
2022/11/14
1.5K0
相关推荐
C/C++踩坑记录(二)一段有趣的常量字符串 原
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验