我已經閱讀了一些類似的問題,但我仍然無法看到我要出錯的地方。當初始化結構數組時出現錯誤(不兼容的類型)
我的malloc的指針和,似乎工作不錯,但我在這條線得到一個錯誤(不兼容類型):
canArray [i] = (TinCan *) malloc(sizeof(TinCan))
下面是完整的代碼:
typedef struct TinCan
{
int date;
int time;
} TinCan;
int main()
{
int i;
TinCan *canArray = malloc(10 * sizeof(TinCan));
for (i =0; i < 9; i++)
{
canArray [i] = (TinCan *) malloc(sizeof(TinCan));
}
}
謝謝,我明白了。如果我現在要將該數組傳遞給初始化方法,它會是這樣嗎? intitialise(canArray **)?這不適合我。 – Dawson 2013-05-01 06:46:38
沒關係。你可以有一個函數初始化一個數組或一個指針數組。我可能會採用第一種方法(指向10個TinCan的指針),因爲代碼會更清晰。 – 2013-05-01 06:48:43
此外,重要的是要記住,數組和指針是不一樣的 - 如果這聽起來很混亂,請閱讀http://c-faq.com/aryptr/aryptr2.html – 2013-05-01 06:50:52