-1
我想在c中創建一個潛艇遊戲,所以我做了一個將潛艇在船上的「位置」連接到潛艇的自我,這些都是我使用的結構;如何處理設置爲指針的結構的結構成員?
struct Point_s
{
int x;
int y;
};
struct BoardPart_s
{
boolean ishit;//yes = 1 no = 0
Submarine* Sub;
};
struct Submarine_s
{
Point start;
Point end;
int Life;// this is calculated from the diffrence of the non equal part of the x/y Point
};
現在當分配新建分配FY指出這樣
Board[xstart][yend]->Sub=&(Plist->sub);// plist is a linked list conatining a submarine
然而,當我嘗試accses其成員的生活就像是
BoardPart BoardP2[BoardSize][BoardSize];// boardsize is 10
.
.
.
.
.
if(BoardP2[x][y]->Sub->Life <= 0)
我得到一個編譯錯誤的成員「請求「生活'的東西不是結構或聯盟「
我應該注意到,在hea中的typedef DER入賬這樣
typedef struct Point_s* Point;
typedef struct Submarine_s* Submarine;
typedef struct Command_s* Command;
typedef struct BoardPart_s* BoardPart;
你有沒有正確'typedef struct submarine_s submarine;'在你使用該類型之前的某個地方? – Ctx
放入完整的代碼。您正在訪問'Submarine'''Life'',但是在您的代碼中它是一個'Submarine_s',它具有'Life'屬性 – Badda
是的,我在標頭上使用了ADT定義 –