次のコードは問題なく動作し (コード ブロック 10.05)、さまざまなテスト ケースでコンパイル時/実行時エラーは表示されませんでした。しかし、プログラミング Web サイトでオンラインで送信すると、実行時エラーが表示されました。
#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]; を使用しました。その後、コンパイラとオンラインの両方で正常に実行されました。