playerPtr->playerPosition=[1][2];
會給你錯誤(語法錯誤)
你是不是在指定數組索引哪些數據將被存儲,也不能以這種方式在C
中存儲數據。
正確的方法是:
playerPtr->playerPosition[0][0] = 1;
playerPtr->playerPosition[0][1] = 2;
.
.
.
playerPtr->playerPosition[9][0] = 19;
playerPtr->playerPosition[9][1] = 20;
,如果你宣佈你的陣列這樣有效期:
int playerPosition[10][2];
,這將允許你存儲十個座標。
2Dimentional陣列如陣列[1] [10]是一樣的陣列[10](供使用,我不能確定的內存分配,二維數組,可能需要更多的內存)
我想你可以使用不同但更容易處理此問題:
typedef struct position{
int x, y;
float refpos; //position from some reference point (like healing circle)
}position;
typedef struct player{
char name[20];
int health, attack, defense; //can be float too
position coord[20];
}player;
player player1, *playerPtr;
playerPtr = &player1;
playerPtr->position[0].x = 3;
playerPtr->position[0].y = 4;
playerPtr->position[0].refpos = 5; //Pythagorean triplet wrt origin (0,0)
Prost!
'struct player playerOne;結構播放器* playerPtr =&playerOne;'''playerPtr-> playerPosition [1 -1] [2 -1] = intValue;' – BLUEPIXY
你究竟期待這個'playerPtr-> playerPosition = [1] [2];'去做? – alk
關於:'struct * player playerPtr;'應該是:'struct player * playerPtr;' – user3629249