-1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p=(int*)malloc(10*4);
int i,a,count=1;
printf("Input :\n");
for(i=0;i<10*count;i++)
{
scanf("%d",p+i);
if(*(p+i)==22){
break;
}
if(i==9+(count-1)*10){
realloc(p,(10+10*count)*sizeof(int));
count++;
}
}
printf("\nOutput :\n");
i=0;
for(;;){
if(*(p+i)==22){
break;
}
printf("%d\n",*(p+i));
i++;
}
}
的mooto的代碼是採取汽車無直到22遇到的輸入,並且當遇到22然後它打印我已經進入precedding它 SPOJ的所有值上運行Ideone.com代碼在gcc編譯器上正常工作,但是當我將它提交給編碼門戶(SPOJ)時,它顯示運行時錯誤,爲什麼?
你可能想告訴我們*你得到了什麼*錯誤。 –
*** ./prog中的錯誤:realloc():無效的舊尺寸:0x09654008 *** @BoPersson –
如果用戶輸入的數字超過3位數,會發生什麼情況?此外,你將覆蓋你的緩衝區。假設每次輸入兩位數字,首先讀取p [0]和p [1],第二次讀取p [1]和p [2]等。雖然修復爲amyCU表示,但您的代碼沒有太大意義。也請格式化,以便可讀。 – digger