我目前正在研究一個涉及玩家的C++項目,每個玩家需要在服務器上存儲關於他的信息以確定他做或應該如何迴應。服務器最多可以有1000個插槽,我不想留下剛分配給程序的未使用的內存,並且在播放器連接或連接時不會創建和銷燬。動態分配內存給連接玩家,然後在他離開時摧毀它(混合類型)
我知道我可以動態分配內存是這樣的:
int *Pointer = new int Example[10];
這將讓我來存儲10個整數,我可以就這個播放器的一些信息。然而我不知道的以及爲什麼我問這個問題:
我該如何使用這個功能或類似的功能來存儲玩家信息。就像一個專門用來存放玩家數據的結構或類一樣。然後刪除它,一旦他離開?
什麼,我需要它來保存將是值的混合範圍內的一個例子:
double Pos[3];
int Mode;
string Name;
換句話說,我需要它保持一個混合型的變量,並能夠鏈接此直接回與其相關的玩家ID?
謝謝。
製作一個管理所有玩家數據的類,爲對象的分配創建一個'std :: unique_ptr',當它們斷開連接時破壞unique_ptr? – cdhowie 2014-09-03 21:13:15
好的,謝謝我會研究它:)。我在Google上點擊了幾次,看起來就像我在找什麼。 感謝您的幫助,併爲啞巴問題感到抱歉。我還在學習 :)。 – user1591117 2014-09-03 21:20:04
@ user1591117 - 當你在編譯時知道入口的數量時,爲什麼需要動態分配?所有你需要的是'int Example [10];'如果只在運行時知道例子的數量,那麼更好的選擇是使用'std :: vector' –
PaulMcKenzie
2014-09-03 21:31:13