我目前正在为大学开发用C语言开发的游戏板。老师提供了一些代码,他将板子存储在内存中的方式是一维数组,板子有16个元素(4x4板子),第0行位于位置[0,3],第2行位于位置[ 4,7] ..等。他还使用下面的函数将二维坐标(i,j)转换为一维坐标,以正确访问右侧板位置(以下函数)。该板将由多个线程管理,也许这将有助于多线程同步?我的问题是:将电路板存储在具有4行4列的二维数组(矩阵)中是否效率较低?
int linearConv(int i, int j){
return j*dim+i;
}
char* getBoardPlaceStr(int i, int j){
return board[linearConv(i, j)].v;
}
Run Code Online (Sandbox Code Playgroud)
PS:另外,是否正在访问数组[0]之类的错误,取消引用指针(即* pointer),访问不需要关键区域的struct成员(即struct.member或sutuct-> member)原子操作?