指针小问题求解~

[复制链接]
查看11 | 回复3 | 2009-8-14 23:24:50 | 显示全部楼层 |阅读模式
哎~scanf总是能产生令人沮丧的问题。scanf("%d",&pcmp);对这行的调用中,scanf从stdio中抽取一个整数出来(int型,在某些机器上是4字节,在某些上是2字节),这里不妨假设4字节,它将被存入&pcmp处,当i从0倒5时虽然每次都是写入4字节,但第二次写入总会覆盖前一次的后三个字节,而不会破坏第一个字节,因此6个数没被破坏最后可以正常显示。但i=6时,写入了四字节,最后三个字节是多写入的,虽然第七个数最后也可以正常printf,但为最后的访问违例埋下伏笔。楼主可以做个实验,输入7个65535看会发生什么事?继续分析问题,scanf后,printf是正常执行的,直到main函数结束错误还没发生,...
回复

使用道具 举报

千问 | 2009-8-14 23:24:50 | 显示全部楼层
scanf("%d",&pcmp);改成scanf("%c",&pcmp);试试...
回复

使用道具 举报

千问 | 2009-8-14 23:24:50 | 显示全部楼层
把%d改成%s试试...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行