我正在尝试制作像2048这样的游戏,但我遇到了一个问题。
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <time.h>
using namespace std;
void random();
void randomCoord();
int gt[3][3];
int r,coordi,coordj;
void initiate()
{
for(int i=0;i<=3;i++)
for(int j=0;j<=3;j++)
gt[i][j]=0;
random();
// randomCoord();
// gt[coordi][coordj]=r;
// randomN();
// randomCoord();
// gt[coordi][coordj]=r;
for(int i=0;i<=3;i++)
{
cout<<endl;
for(int j=0;j<=3;j++)
cout<<gt[i][j]<<" ";
}
}
void random()
{
srand (time(NULL));
do
{
r = rand() % 4 + 2;
if(r==2 || r==4)
break;
}
while(1);
}
void randomCoord()
{
srand (time(NULL));
coordi = rand() % 4;
coordj = rand() % 4;
}
int main()
{
initiate();
return 0;
}
我希望当我在屏幕上打印矩阵以获得满零的矩阵时...但由于某种原因,值gt[2][3]
和gt[3][0]
得到{{1}的值}。我不明白原因。
感谢您的帮助!
答案 0 :(得分:1)
如果您想在gt[2][3]
和gt[3][0]
中写信,则gt
必须
int gt[4][4];
如果您的gt
是gt[3][3]
,当您访问位置3
时(对于第一个或第二个索引),您(就我所知)在未定义的行为中。