⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_59554.htm

📁 vc
💻 HTM
字号:
<p>
序号:59554 发表者:about blank 发表日期:2003-11-08 17:09:02
<br>主题:对VC 6报有怀疑的人看这里
<br>内容:我在做一个银行家算法的时候,发现了V6的一点问题:在自定义函数调用的时候,同样的代码经常出现:ACCESS VIOLATION的警告,然后调试窗口跳到内存地址的图象上(见附图),但是有时却可以通过,我用同样的代码在VC7甚至TC上都可以通过,并且查代码错误已经快要暴头了,别人说大概是VC6的BUG,但是我觉得还是自己代码的逻辑错误。<BR>代码和错误图象都在附件中,求教<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 至诚
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-11-08 17:13:44
<br>内容:你给个出错的输入阿!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-11-08 17:16:24
<br>内容:算了算了<BR>晚上我复习一下银行家算法了给你看
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:about blank 回复日期:2003-11-08 17:20:55
<br>内容:输入:1,1,0,2<BR>在VC7中的回答是正确的‘COMPLETE’
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:about blank 回复日期:2003-11-08 17:27:18
<br>内容:即使在追踪过程中,在PROCESS()里一步一步走,只要PROCESS一结束,回到MAIN中,马上抱错,我都郁闷了,好汉,留下QQ
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-11-08 17:29:42
<br>内容:please input your request:user(0~4):<BR>1<BR>input the number of resource a:<BR>1<BR>input the number of resource b:<BR>0<BR>input the number of resource c:<BR>2<BR>sorry,we cannot help you!<BR>Press any key to continue<BR>我怎么没出错阿<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:about blank 回复日期:2003-11-08 17:31:47
<br>内容:是用V6吗,难道是我的有问题?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:about blank 回复日期:2003-11-08 17:34:41
<br>内容:麻烦您老追踪一下,SAFETY——CHK()返回值是1吗,如果没中断,应该结果是”COMPLETE‘啊<BR>谢了,
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-11-08 17:41:05
<br>内容:please input your request:user(0~4):<BR>1<BR>input the number of resource a:<BR>1<BR>input the number of resource b:<BR>0<BR>input the number of resource c:<BR>2<BR>safety_chk's result 0<BR>sorry,we cannot help you!<BR>Press any key to continue<BR><BR><BR><BR><BR>修改后的代码如下:<BR>#include&lt;stdio.h&gt;<BR>struct claim<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int user;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int num[3];<BR>}claims;<BR>int input()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;please input your request:user(0~4):\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;scanf(&#34;%d&#34;,&amp;claims.user);<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;input the number of resource a:\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;scanf(&#34;%d&#34;,&amp;claims.num[0]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;input the number of resource b:\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;scanf(&#34;%d&#34;,&amp;claims.num[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;input the number of resource c:\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;scanf(&#34;%d&#34;,&amp;claims.num[2]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 1;<BR>}<BR>int safety_chk(int alloc[][3],int need[][3],int avail[3])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int work[3],finish[5];<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int p=0;p&lt;5;p++)//i大于2后对WORK是无意义的<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;work[p]=avail[p];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finish[p]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;5;i++)&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(finish[i]==0&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need[i][0]&lt;=work[0]&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need[i][1]&lt;=work[1]&amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need[i][2]&lt;=work[2]&nbsp;&nbsp;&nbsp;&nbsp;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int j=0;j&lt;3;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;work[j]=alloc[i][j]+work[j];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finish[i]=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=-1;//重头再来<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;5;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(finish[i]==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 1;<BR>}<BR><BR>int process(int alloc[][3],int need[][3],int avail[3])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int ret;<BR>&nbsp;&nbsp;&nbsp;&nbsp;input();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;3;i++) //out of resource number<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(claims.num[i]&gt;need[claims.user][i]||claims.num[i]&gt;avail[i])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;3;i++)//trying<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;avail[i]=avail[i]-claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alloc[claims.user][i]=alloc[claims.user][i]+claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need[claims.user][i]=need[claims.user][i]-claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;if((ret=safety_chk(alloc,need,avail)==0))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>/*****************************************************/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;safety_chk's result %d \n&#34;,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;3;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;avail[i]=avail[i]+claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alloc[claims.user][i]=alloc[claims.user][i]-claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need[claims.user][i]=need[claims.user][i]+claims.num[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>/***************************************************/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;safety_chk's result %d \n&#34;,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 1;<BR>}<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int alloc[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};<BR>&nbsp;&nbsp;&nbsp;&nbsp;int need[5][3]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};<BR>&nbsp;&nbsp;&nbsp;&nbsp;int avail[3]={3,3,2};<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(process(alloc,need,avail)==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;sorry,we cannot help you!\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;else printf(&#34;operation complete!\n&#34;);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-11-08 17:42:25
<br>内容:偶除了跟mfc打交道的时候遇上过编译器乱来<BR>其他时候vc的编译器还是好样的!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:about blank 回复日期:2003-11-08 17:43:09
<br>内容:请你吃饭!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-11-08 17:45:21
<br>内容:不好意思<BR>刚刚吃了.谢谢你.<BR>你到底弄出来了没有阿
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-11-08 17:54:07
<br>内容:这个程序的确有问题,safe_chk()返回时候的stack被破坏了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-11-08 17:57:13
<br>内容:.<BR>2003-11-8 18:01:19

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -