我有下面的代碼段,這是隻在整個代碼一半:試圖創建一個動態數組
// Declare map elements using an enumeration
enum entity_labels {
EMPTY = 0,
WALL
};
typedef entity_labels ENTITY;
// Define an array of ASCII codes to use for visualising the map
const int TOKEN[2] = {
32, // EMPTY
178 // WALL
};
// create type aliases for console and map array buffers
using GUI_BUFFER = CHAR_INFO[MAP_HEIGHT][MAP_WIDTH];
using MAP_BUFFER = ENTITY[MAP_HEIGHT][MAP_WIDTH];
//Declare application subroutines
void InitConsole(unsigned int, unsigned int);
void ClearConsole(HANDLE hStdOut);
WORD GetKey();
void DrawMap(MAP_BUFFER & rMap);
/**************************************************************************
* Initialise the standard output console
*/
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hStdOut != INVALID_HANDLE_VALUE)
{
ClearConsole(hStdOut);
// Set window title
SetConsoleTitle(TEXT("Tile Map Demo"));
// Set window size
SMALL_RECT srWindowRect;
srWindowRect.Left = 0;
srWindowRect.Top = 0;
srWindowRect.Bottom = srWindowRect.Top + MAP_HEIGHT;
srWindowRect.Right = srWindowRect.Left + MAP_WIDTH;
SetConsoleWindowInfo(hStdOut, true, &srWindowRect);
// Set screen buffer size
COORD cWindowSize = { MAP_WIDTH, MAP_HEIGHT };
SetConsoleScreenBufferSize(hStdOut, cWindowSize);
}
/*************************************************************************/
/*************************************************************************
* Initialise the tile map with appropriate ENTITY values
*/
MAP_BUFFER tileMap;
for (unsigned int row = 0; row < MAP_HEIGHT; row++)
{
for (unsigned int col = 0; col < MAP_WIDTH; col++)
{
tileMap [row][col] = WALL;
}
}
基本上整個碼被用來創建一個元件地圖並將其輸出到屏幕上,但我試圖在運行時使tileMap成爲一個動態數組。 我已經嘗試在創建tileMap的地方創建一個。 我試過創建一個「entity_lables」之後給出typedef「ENTITY」。 我試過在「MAP_BUFFER」和「GUI_BUFFER」成爲別名後創建一個。 但是我仍然無所適從,我不知道如何成功實現一個動態數組到tileMap,而且我當然不知道把它放在最合適的位置。
任何幫助將不勝感激。
至於我,那我什麼也沒有理解。 –
我不明白這個問題,但我猜你需要的是'std :: vector>' –
Mine
我試着將MAP_BUFFER tileMap(朝向代碼底部)更改爲MAP_BUFFER * tileMap =新的MAP_BUFFER,但然後我得到一個「新」的錯誤,說「類型的值」ENTITY(*)[30]「不能用於初始化」MAP_BUFFER *「類型的實體」 – Nick