最近在探讨关于缓冲区溢出的相关问题,各位大侠帮忙看看这个程序,两个for循环导致内存内容不一样,其中的玄妙在哪里?我是嫩草,谢啦谢啦~~
2011-04-01 18:18
846 查看
/*缓冲区溢出实验操作*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i='a'; /* char i='a';*/
char prepare[6];
char *nowString="abcdefghijklmnopXqrstuvwxyz";
strcpy(prepare,nowString);
printf("size(int):%d/n",sizeof(int));// 本机器上 int 4字节
printf("size(char):%d/n/n",sizeof(char));//本机器上 char 1 字节
printf("%s-----nowString/n",nowString);
printf("%s-----prepare/n",prepare);
/*******************************************/
/*两个for循环,执行后为什么使内存中的数据不一样了呢?1 和 2 的结果不相同,原因在哪里?for中对i初始化时,编译器做了什么?*/
*/
for(;i<'k';i++)printf(" "); /* 1 */ /*字符串空间跟 i 的存储空间重合了,修改i的值是字符串的数据也发生变化*/
// for(i='a';i<'k';i++)printf(" "); /* 2 */
/* 1 中的i++似乎没有往i的存储空间写数据?*/
/************/
/*******************************************/
printf("%s/n",prepare+10);
printf("%ld/n",(int *)&i); /*(char *)&a */ //缓冲区溢出,变量i的存储空间跟字符串空间复合掉了
printf("%ld",prepare+16);//i 的地址跟 字符串某一字符地址相同
printf("/n");
printf("prepare[15]:%c/n",*(prepare+15));
printf("prepare[16]:%c/n",*(prepare+16));
printf("prepare[17]:%c/n",*(prepare+17));
printf("prepare[17]:%c/n",*(prepare+18));
printf("prepare[17]:%c/n",*(prepare+19));
printf("prepare[17]:%c/n",*(prepare+20));
printf("prepare[17]:%c/n",*(prepare+21));
printf("prepare[17]:%c/n",*(prepare+22));
while(1);
}
相关文章推荐
- 请各位帮忙看看这个内存泄漏问题,该如何解决?BSTR
- 关于应付款问题,请各位大侠帮忙,谢谢!~
- 第十三周项目二 阅读修改关于交通工具类的程序,回答问题,以理解相关内容(1)
- 请各位大侠帮忙看看我编的程序可行吗,
- 各位帮忙看一下这个求100!的小程序哪里错啦?
- 第十三周项目二 阅读修改关于交通工具类的程序,回答问题,以理解相关内容(2)
- 第十三周项目二 阅读修改关于交通工具类的程序,回答问题,以理解相关内容(3)
- opencv关于视频添加滚动条的问题 一样的程序 为什么结构不一样呢!奇怪极了(4)
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 关于最近出现的病毒导致桌面无法显示的问题
- 黄聪:dede 5.6自定义模型列表生成问题,img.lib.php on line 42,请各位帮忙看看
- 关于ViewPager加载多个导致OOM内存溢出的问题。
- 关于HTML5中渐变的问题,跪求各位大侠指导
- 关于java备注乱码的问题,两个工程默认的编码不一样
- 请帮忙看看这个程序的运行结果为何这样怪
- 关于测试一个windows动态链接库的问题;请教各位大侠!
- 最近写一个C#关于U盘的操作,在弹出U盘是遇到了些问题,C#调WINdoWs底层的东西太麻烦了,看样子要看看VC或C了
- 关于STM32栈增长和大端/小端问题是和CPU相关的两个问题
- 问题-关于sharemem程序访问WEB出现内存错误处理
- 关于HTML5中渐变的问题,跪求各位大侠指导