这是我的康威生命游戏 C 代码。
函数newgen检查相邻的单元格,所有八个单元格,即使单元格位于矩阵的边缘。如何以不会导致访问越界数据和未定义行为的方式对其进行更改?
我也有这个错误:
1 IntelliSense: a value of type "void *" cannot be assigned to an entity of type "int *"
代码是:
void copy() {
int i, j;
for (i = j = 0; i < HEIGHT; i++) {
for (; j < WIDTH; j++) {
gb2[i][j] = gb[i][j];
}
}
}
void init() {
int i, j;
for (i = 0; i < HEIGHT; i++) {
gb [i] = malloc(sizeof(int)*WIDTH);
gb2[i] = malloc(sizeof(int)*WIDTH);
}
for (i = 0 ; i < HEIGHT; i++) {
for (j = 0 ; j < WIDTH; j++) {
gb [i][j] = 0;
}
}
gb[0][0] = 1;
gb[0][1] = 1;
gb[1][0] = 1;
gb[1][1] = 1;
copy();
}
... int main() { int i; 在里面(); 新根();打印();for (i = 0; i < HEIGHT; i++) { free(gb[i]); 免费(gb2[i]);} }