2013-03-18 150 views
1

所以,我有這樣的結構:陣列結構類型,C錯誤

typedef struct { 
    int day; 
    int amount; 
    char type[4],desc[20]; 
}transaction; 

而這個功能來填充型交易的載體,在主宣稱:

void transact(transaction t[],int &n) 
{ 
    for(int i=0;i<n;i++) 
    { 
     t[i].day=GetNumber("Give the day:"); 
     t[i].amount=GetNumber("Give the amount of money:"); 
     t[i].type=GetNumber("Give the transaction type:"); 
     t[i].desc=GetNumber("Give the descripition:"); 
    } 
} 

錯誤我在功能標題transact()

Multiple markers at this line
- Syntax error
​​

+0

後您固定使用一個基準參數的嘗試,你」會遇到't [i] .type = GetNumber(「...」)'和't [i] .desc = ...'不能分配數組的問題。 – 2013-03-18 18:10:42

回答

3

C++有引用,如int &n; C沒有。

刪除&

然後,您將分配數字給t[i].typet[i].desc時會出現問題。他們是字符串,則無法分配串那樣,你可能要使用類似void GetString(const char *prompt, char *buffer, size_t buflen);做讀取和分配:

GetString("Give the transaction type:", t[i].type, sizeof(t[i].type)); 
6

您試圖聲明n參數作爲參考(int &n)。但引用是一個C++的功能和C.

不存在由於該函數不修改的n價值,只是讓一個正常的參數:

void transact(transaction t[],int n) 

你也有錯誤後,您試圖將數組分配:

t[i].type=GetNumber("Give the transaction type:"); 
t[i].desc=GetNumber("Give the descripition:"); 

由於GetNumber可能返回一個數字,目前尚不清楚你正在嘗試在那裏做。