none
【求助】处未处理的异常: 0xC0000005: 读取位置 0x00000001 时发生访问冲突 RRS feed

  • 问题

  • 我在调试一个程序时出现下面的错误,是一个框弹出来的:

     

    通讯录2.0.exe 中的 0x1029984f (msvcr90d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000001 时发生访问冲突

     

    这个错误可能是在下面这句代码执行时引起的:

     

    Code Snippet

    printf("%-10s%-10d%-4s%-4d年%-2d月%-2d日-35s%-15d%30s\n", studnt[fnd].name, studnt[fnd].sNum, studnt[fnd].sex, studnt[fnd].bthDay.year,
       studnt[fnd].bthDay.month, studnt[fnd].bthDay.date , studnt[fnd].room, studnt[fnd].tel, studnt[fnd].Email);

     

     

    请大家帮忙看下是什么原因,谢谢!
    2008年12月25日 9:59

答案

  • 我刚解决了一个这样的问题。
    我的程序里面是因为堆栈溢出了。
    你可以用微软的AppVerfier调试一下看看,这种问题最有可能的原因就是数组越界或者堆栈溢出。
    2008年12月28日 12:23

全部回复

  • 发生0xC0000005错误,通常只有一个原因:引用的指针没有初始化或者已经释放。检查一下name、sex等字段或者studnt自身是否有值。

    2008年12月25日 14:34
  • 访问了野指针,或者数组越界。应该是studnt下标越界了。

    2008年12月26日 4:11
    版主
  • 我刚解决了一个这样的问题。
    我的程序里面是因为堆栈溢出了。
    你可以用微软的AppVerfier调试一下看看,这种问题最有可能的原因就是数组越界或者堆栈溢出。
    2008年12月28日 12:23
  • 最好单步调试一下看出现错误时,数据库访问是否已有问题,主要是看看那些字段的数据类型和变量的类型是否配套。

     

    2008年12月29日 2:22
    版主
  • 谢谢大家的帮助!

     

    是我打漏了个%,加上去就没问题了.

    2008年12月29日 12:24