我们可以为指针 unsigned char 数组赋值吗?

Can we assign a value to pointer unsigned char array?

大家好,我正在尝试用 C++ 制作俄罗斯方块游戏。我在找 that tutorial

#include <iostream>
#include <string>
using namespace std;

int nFieldWidth = 12;
int nFieldHeight = 18;
unsigned char *pField = nullptr;   //dynamic memory allocation for store game area elements

int main(){
...

pField = new unsigned char[nFieldHeight * nFieldWidth]; 
for(int x = 0; x < nFieldWidth; x++)
    for(int y = 0; y < nFieldHeight; y++)
        pField[y*nFieldWidth+x] = (x == 0 || x == nFieldWidth - 1 || y == nFieldHeight - 1) ? 9 : 0;
...
system("pause");
return 0;
}

我们在这个条件分支中做什么?我知道

if(x == 0 || x == nFieldWidth -1 || y == nFieldHeight -1)
   pField[y*nFieldWidth+x] = 9;
else
   pField[y*nFieldWidth+x] = 0;

我们在分配内存吗?如果我们是为什么我们设置为 9 ,在全局中我们选择 12 和 18 作为边框长度??

他在 youtube 视频中从 8:20 开始解释:如果插槽为空,pField 设置为 0,否则如果它被其中一个 tetromini 形状占用,则设置为 1 到 8。 9 保留用于板墙。 因此,在那个三元条件下,他正在初始化电路板,几乎在所有地方都将其设置为空 (0),除非循环碰到边缘(0 是左边缘,nFieldWidth - 1 是右边缘,nFieldHeight - 1 是底部边缘),他将在此处放置一个墙槽 (9)。