我正在尋找一個解決方案,但我不能使用任何沒有錯誤。 我試圖在控制檯中繪製地圖,使用multidismentional數組。我想要更多地圖,但是如果不發送無用的代碼,我就無法做到。這是地圖:試圖使用多維數組指針
char map2[11][15] = {
"###^######^###",
"#L #",
"^S #",
"#S #",
"# K #",
"########### #",
"#G #",
"# #### #",
"# #M #",
"# @ # #",
"## ########^##"};
,這是移動腳本:
void Game::showing_different_maps()
{
differentmap= true;
while (differentmap)
{
system("cls");
for(int i = 0; i < 81; i++) // i < map2[y][]
{
cout << somemap[i] << endl; // drawing a map !THIS CAUSES CRASH!
}
system("pause>nul"); // this line prevent lagging somehow
if(GetAsyncKeyState(VK_UP)) // arrows to move on axis (y, x)
{
mapka.move(-1, 0);
}
if(GetAsyncKeyState(VK_DOWN))
{
mapka.move(1, 0);
}
if(GetAsyncKeyState(VK_RIGHT))
{
mapka.move(0, 1);
}
if(GetAsyncKeyState(VK_LEFT))
{
mapka.move(0, -1);
}
}
}
,這裏是什麼,我可以在互聯網上找到。
Wut wut(3, 13);
Maps *wsk;
pointer = &wut;
char (*somemap)[81] = new char[81][81];
somemap= &map2[81];
pointer = &wut;
pointer -> get_in_area();
我想要做的事情是:在代碼的某些部分,我希望指針是map2。我設法使指針「指針」在類Maps中顯示void get_in_area(),但是當我想在第二個代碼示例中使用somemap指針繪製地圖時,控制檯崩潰。它工作,而不是somemap [我]我把map2 [i]。如果我錯過了任何事情,我很抱歉,我是初學者,英語不是我的第一語言。 我做了這個腳本本教程:https://www.youtube.com/watch?v=7gpH7bOS350
由於您假設數組邊界== 81?一旦未定義的行爲發生崩潰,它會崩潰 – Neijwiert
也在C++中嘗試儘可能避免原始數組,並將它們包裝到類中或使用其中一個現有類來讓這種故障以更好的方式出現,並帶有乾淨的異常 – Neijwiert
I試圖到處編輯81,但它從來沒有幫助過。地圖尺寸不同,最大尺寸爲81x81,所以我只寫了81個地方。感謝您的建議,但代碼示例是在課堂上,我只是沒有粘貼整個代碼 – Pinet