一个报错信息的—急!

ppwf 2003-10-20 09:05:52
我的程序在compile和build时均无错误信息
但运行时出现一对话框说-----“0x00412df8指令引用的0x33761004”内存,该内存不能为“written" .确定和取消按钮,点取消时调试指向下面的******处
什么意思啊
我的代码如下(部分)
int a[2];
for(int j=0;j<edge;j++)
{
int judge=0;
int count=0;

for(int i=0;i<M;i++)
{
if(b[i][j]!=0)
{
a[count++]=i+1;

if(m[i][j]==1)
judge=1;
else
judge=0;
}
int p=a[0];
int q=a[1];

if(judge!=1)
m[p][q]=1;******
else
m[q][p]=1;
}
}

谢谢
麻烦了

...全文
25 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppwf 2003-10-21
  • 打赏
  • 举报
回复
不好意思
分不多
ppwf 2003-10-21
  • 打赏
  • 举报
回复
是count,以及,p,q超出了下限
ppwf 2003-10-21
  • 打赏
  • 举报
回复
谢谢了!
麻烦你们了!
不好意思!!!!!!!!!
解决了
PriMaryPeople 2003-10-20
  • 打赏
  • 举报
回复
如果b[i][j]始终等于0,则a数组中的值是随机的。有可能会出现楼上所说的情况。
或者这条语句:
a[count++]=i+1;
中的count有可能超出2下限,而出的错误信息。虽然错误提示位置不准确。
不是说在C语言或VC中有可能出现这样的情况吗?不对之处请高手指教。
ssbull 2003-10-20
  • 打赏
  • 举报
回复
我感觉应该是你的数组m越界了。你可以试着把p,q的值打印出来看看,看看是否超出了你定义的数组m的范围。从我的判断来看,问题应该是处在这方面。
daizh 2003-10-20
  • 打赏
  • 举报
回复
再有 int p=a[0];
int q=a[1];
从你给的程序看a[]数组中元素你没有给它值,那么它就是随机给定的,所以会出现上面我给的出错回答。
daizh 2003-10-20
  • 打赏
  • 举报
回复
可能a[p][q]中的下标p、或者q超出了(M-1)而是数组a[p][q]指向了其他内存区域。
ppwf 2003-10-20
  • 打赏
  • 举报
回复
我有的
定义的全局数组
int m[M][M];(M是常量)
我在别的地方改变他的数值时没事的啊(试过了)
daizh 2003-10-20
  • 打赏
  • 举报
回复
由于你没给出m数组的详细定义,所以只能从出错信息推测是:m[][]没有分配内存空间

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧