首页
学习
活动
专区
圈层
工具
发布

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

先贴代码

代码语言:javascript
复制
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({});

下一篇
举报
领券