qq_33796078 2017-07-19 12:17 采纳率: 0%
浏览 679
已采纳

C++简单函数参数传递问题请求解答

#include
#include
using namespace std;
int main()
{
//寻找bmp文件中,文件的高和宽
FILE *file_bmp;
file_bmp=fopen("图片测试文档.bmp","rb");
if(NULL==(file_bmp))
{
return -1;
}
fseek(file_bmp,0x0012,SEEK_SET);
int *iWidth;
int *iHeight;
fread(iWidth,4,1,file_bmp);//这里有问题,应该是参数传递错误导致的
fseek(file_bmp,0x0016,SEEK_SET);
fread(iHeight,4,1,file_bmp);

/*正确结果代码
int iWidth,iHeight;
fread(&iWidth,4,1,file_bmp);//这样结果是对的,但是理论上两种方法是相同的啊
fseek(file_bmp,0x0016,SEEK_SET);
fread(&iHeight,4,1,file_bmp);
*/
return 0;

}

  • 写回答

5条回答 默认 最新

  • 无风涯 2017-07-24 02:51
    关注

    int *iWidth;
    int *iHeight;
    这两个指针未指向有效的内存地址,传参后导致程序非法读取内存

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统