以下代码对我来说运行良好(代码块 10.05)并且没有显示各种测试用例的编译时/运行时错误。但是当我在编程网站上在线提交时显示运行时错误。
#include<stdio.h>
#include<stdlib.h>
/*
Here comes newPos()
*/
int main()
{
int t,i,n,k,j;
scanf("%d",&t);
int* a;
for(i=0;i<t;i++)
{
scanf("%d",&n);
free(a);
a=(int*) malloc(n);
for(j=0;j<n;j++)
scanf("%d",&a[j]);
scanf("%d",&k);
printf("%d\n",newPos(a,n,k));
}
return 0;
}
然后我在进行了一些更改后将其更改为 .cpp 文件。即,我使用的语句不是 free(a),而是 delete a; 而不是 a=(int*) malloc(n),我使用了语句 a=new int[n]; 然后它在我的编译器和在线都成功执行。