2015-04-12 104 views
-1

我最近正在編寫一個程序,它會使用struct,並且遇到了一個問題。 該程序將定義一個稱爲「polynomial」的結構,並在main()中聲明一個名爲「polynomial term []」的結構數組。我想將這個結構數組傳遞給「StorePoly()」,但我得到了一些錯誤。非常感謝,如果有人能幫助我。我可以將結構數組發送到其他函數嗎? C語言

p.s.我在main()中聲明struct數組的原因是因爲我不想修復數組的索引量。下面是我的代碼:

#include <stdio.h> 

typedef struct 
{ 
    int coef; 
    int expon; 
}polynomial; 

int StorePoly(struct polynomial); 


int main(void) 
{ 
    int NumberofTermsA = 0; 
    int Memory = 100; 

    polynomial term[Memory]; 

    StorePoly(polynomial term); 
    return 0; 
} 


int StorePoly(struct polynomial term[]) 
{ 
    int i; 

    for(i = 0; i<5; i++) 
    { 
     term[i].coef = i; 
     term[i].expon = i*2; 
    } 
    return 0; 
} 

回答

1

簡單地改變

StorePoly(polynomial term); 

StorePoly(term); 

,改變函數聲明

int StorePoly(struct polynomial term[]) 

int StorePoly(polynomial term[]) 

並且還原型

int StorePoly(struct polynomial); 

int StorePoly(polynomial[]); 
0

要傳遞兩者的數據類型和變量在

StorePoly(多項式項);

將其更改爲

StorePoly(term);

+0

Varun的,謝謝你的建議,現在的工作:-) –

0

該函數應該聲明如下

void StorePoly(struct polynomial[], int n); 

,並呼籲像例如

StorePoly(term, 5); 
相關問題