内存分配的问题,野指针,或是循环越界都很容易出现这种问题
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还没初始化 就使用 这个数很大 所以分配的空间很大。
内存分配错误吧,检查程序