我正在尝试为棋盘游戏制作网格,我知道棋盘的最大尺寸,但是根据用户在命令行中输入的内容,它也可以更小。我制作了以下程序,它编译成功,但是当我将尺寸写入命令行时,它显示“分段错误(核心转储)”。谁能告诉我我做错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BOARD_WIDTH 80
#define BOARD_HEIGHT 52
int i;
int j;
int width;
int height;
int generations;
int grid[BOARD_WIDTH][BOARD_HEIGHT];
int main(int argc, char *argv[])
{
if (argc < 2)
{
printf("Not enough arguments entered\n");
exit(1);
}
else
{
width = atoi(argv[2]);
height = atoi(argv[3]);
generations = atoi(argv[4]);
}
for(i=0;i<width;i++)
for(j=0;j<height;j++)
printf("%2d", grid[i][j]);
}