【发布时间】:2017-01-15 05:54:15
【问题描述】:
我有以下一段代码,只占整个代码的一半:
// 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<std::vector<int>> -
我尝试将 MAP_BUFFER tileMap(朝向代码底部)更改为 MAP_BUFFER * tileMap = new MAP_BUFFER,但随后我在“new”上收到错误消息,显示“a value of type” ENTITY()[30]" 不能用于初始化类型为 "MAP_BUFFER " " 的实体
标签: c++ arrays memory dynamic runtime