QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 602|回复: 2

lluct同学,你把我的瘾钩起来了……

[复制链接]
发表于 2004-3-7 23:14:47 | 显示全部楼层 |阅读模式
刚刚跟你说起那个缓冲区溢出……写了点代码,如今一写就停不下来了……………………
再送你个代码:
[code:1]
#include <stdio.h>

int main()
{
        int i;
        char a;
        char *s;
        int j;

        i=0;

        scanf("%d",&a);
        printf("the value of i is:%d\n",i);
        s=(char *)&i;
        s--;

        printf("now, the address of a is:%x\n",&a);
        printf("Address\t\t\tvalue\n");
        for(j=0;j<5;j++,s++)
                printf("%x\t\t%2x\n",s,(int)*s);


        return 0;
}
[/code:1]
hoho~~运行结果:
[code:1]
[monnand@monnand test]$ gcc 1test.c
[monnand@monnand test]$ ./a.out
-1
the value of i is:16777215
now, the address of a is:bffff8f3
Address             value
bffff8f3                ffffffff
bffff8f4                ffffffff
bffff8f5                ffffffff
bffff8f6                ffffffff
bffff8f7                 0
[monnand@monnand test]$
[/code:1]

再来一个:
[code:1]
[monnand@monnand test]$ ./a.out
-2
the value of i is:16777215
now, the address of a is:bffff8f3
Address             value
bffff8f3                fffffffe
bffff8f4                ffffffff
bffff8f5                ffffffff
bffff8f6                ffffffff
bffff8f7                 0
[monnand@monnand test]$
[/code:1]
偶说这么多,你到底明白没有阿???
发表于 2004-3-7 23:49:54 | 显示全部楼层
那不用scanf,那用什么阿??
回复

使用道具 举报

 楼主| 发表于 2004-3-7 23:51:30 | 显示全部楼层
还有很多阿~比如getchar啦~或者用fread:
fread(str,sizeof(char),10,stdin);
这样也可以阿~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 21:04 , Processed in 0.055911 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表