我會擴展數組,直到程序收到「-1」作爲輸入。我每次1當前的陣列延伸,但經過7輸入我有「無效的下一個大小:0x0000000000d47010」Dinamically增長陣列,直到鍵輸入錯誤:無效的下一個尺寸
void extend(int *v, int i)
{
int *p;
p= (int *) realloc(v, (i+1)*sizeof(int));
if(p!=NULL)
v=p;
}
int main()
{
int *v;
v= malloc(sizeof(int));
int n=0;
int i=0;
while(n!=-1)
{
scanf("%d", &n);
v[i]=n;
extend(v,i);
i++;
}
return 0;
}
編輯做這個工作
void extend(int *v, int i)
{
int *p;
p= (int *) realloc(v, (i+1)*sizeof(int));
if(p!=NULL)
v=p;
}
int main()
{
int *v;
v= malloc(sizeof(int));
int n=0;
int i=0;
while(n!=-1)
{
scanf("%d", &n);
if(n!=-1)
{
extend(v,i);
v[i]=n;
i++;
}
}
prodottoScalare(v, i);
return 0;
}
您的解決方案可以工作,我改變了答案,並把一個解決方案,它的工作原理,但它錯了嗎? – user4789408
@ user4789408新解決方案中的函數與通過值而不是參考傳遞原始指針的問題相同:) –