为什么我的软件vc6.0编译时没什么问题,到运行时输入数据反应很慢,然后就自己跳出已停止工作的对话框??
展开全部
内存分配的问题,野指针,或是循环越界都很容易出现这种问题
int main(){}里面代码顺序执行,
也就是先
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int)); 再接收你的Q赋值;C语言中malloc只管分配内存,所以在Q未知的情况下先分配内存,这样做很危险、
if(i=j)G[101][101]=0;
这句你,=表示的是赋值,==表示逻辑相等;
你程序的意思应该是if(i==j)G[i][j]=0; 没看懂你循环赋值的意思。。
如果你要改的话可以先把scanf("%d%d%d",&N,&M,&Q);放在
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int)); 之前,
int main(){}里面代码顺序执行,
也就是先
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int)); 再接收你的Q赋值;C语言中malloc只管分配内存,所以在Q未知的情况下先分配内存,这样做很危险、
if(i=j)G[101][101]=0;
这句你,=表示的是赋值,==表示逻辑相等;
你程序的意思应该是if(i==j)G[i][j]=0; 没看懂你循环赋值的意思。。
如果你要改的话可以先把scanf("%d%d%d",&N,&M,&Q);放在
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int)); 之前,
展开全部
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int));
你的Q还没初始化 就使用 这个数很大 所以分配的空间很大。
int *b=(int *)malloc(Q*sizeof(int));
你的Q还没初始化 就使用 这个数很大 所以分配的空间很大。
更多追问追答
追问
???那怎么处理
追答
if(i=j)G[101][101]=0;
你的数组越界了。最大只能是G[100][100]
你给的代码不全?
下面两句注释掉
int *a=(int *)malloc(Q*sizeof(int));
int *b=(int *)malloc(Q*sizeof(int));
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
内存分配错误吧,检查程序
更多追问追答
追问
我程序发给你看下。。。行不?
追答
试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询