杭电2022题 编译能通过,但提交时总是Runtime Error (ACCESS_VIOLATION) 请高手看一下代码。

2024年11月30日 09:52
有2个网友回答
网友(1):

long a[1000][1000],b[1000][1000]

你定义的数组下标值太大,将1000改小点就可以了,到底具体可以取多大,还不知道,应该不可以超过内存大小吧。

希望对你有帮助

可以修改成这样:
long **a=(long**)malloc(1000*sizeof(long));
long **b=(long**)malloc(1000*sizeof(long));
for(i=0;i<1000;i++)
a[i]=(long*)malloc(1000*sizeof(long));
for(i=0;i<1000;i++)
b[i]=(long*)malloc(1000*sizeof(long));

这样就分配了aa[1000][1000],b[1000][1000]
用完数组之后,要释放malloc分配的空间
for(i=0;i free(b[i]);
for(i=0;i free(a[i]);

网友(2):

没什么其他的问题了,你把a[1000][1000]改成malloc动态存储就可以了。