2012-02-01 85 views
-4

我試着在C++中製作一個工資計劃。在我的程序開始時,我必須定義一個名爲EmployeeT的結構,它將所有有關員工的信息一起存儲在一個單元中。如何在C++中定義結構?

然後,我必須將所有這些信息放在EmployeeT結構數組中,稱爲employees。

我有這個迄今爲止...

typedef struct 
{ 
    char name[]; 
    char title; 
    double gross; 
    double tax; 
    double net; 
} EmployeeT; 

那麼,什麼是我錯過或做錯了嗎?

謝謝你們

+0

在C++通過default.why字符名稱啓用'typedef' [],這是非常危險的或struct'的'大小調整。結構應該是穩定的大小。 – PersianGulf 2012-08-14 18:59:49

回答

3

你有什麼有問題,只是如果你想要一個靈活的數組成員(char name[]),它需要在結構中的最後一個字段。不過,可能你真正想要的是一個指針(char *name)或一個真實數組(char name[SOME_SIZE])。

+0

噢,好吧我想我明白了。我現在將如何獲取這些信息並將其放入EmployeeT結構的數組中? – Gvegas222 2012-02-01 03:11:55

+0

你會如何製作其他任何東西? – 2012-02-01 03:17:02

+0

是否像......員工[EmployeeT]; ? – Gvegas222 2012-02-01 03:20:06

2

將char名稱[]改爲char名稱*。

當初始化使用:

name = new name[SIZEOFARRAY]; 

,當你不需要它了,不要忘記將其刪除:

delete [] name; 
+1

小心!當你使用'new []'時,你必須確保將它與'delete []'配對。 – 2012-02-01 03:15:58

+0

當然。這個非常重要。編輯 – Rodrigo 2012-02-01 03:44:46

2

當你聲明字符名稱[],你需要給它數組的長度,如果它將是靜態的。否則,將其聲明爲一個指針,以便以後可以動態創建該數組。

該結構需要知道它究竟有多大,所以你不能有一個內部未知大小的數組。

0

例如

struct stu 
{ 
int num; 
char name[20]; 
char sex; 
float score; 
}; 
+0

噢好吧我想我明白了。我現在將如何獲取這些信息並將其放入EmployeeT結構的數組中? – Gvegas222 2012-02-01 03:24:15