【发布时间】:2016-10-25 23:21:01
【问题描述】:
就对象和数组而言,我一直在努力从 Java 切换到 C。为了借口我的问题,我的任务是创建一个康威的生活模拟器。我的问题是,当我尝试创建一个对象时 Generation 包含当前板作为二维字符数组和这样的代号:
struct GENERATION
{
char board[][];
int numGen;
};
typedef struct GENERATION Generation;
我从编译器得到一个错误:
Conway's Game of Life.c:6:15: error: array has incomplete element type 'char []'
所以我的问题是:如何在结构中创建未初始化的 2D 字符数组并能够更改该对象的内容?
【问题讨论】:
-
数组必须有静态边界。换句话说,您需要指定数组的大小。如果这些在编译时未知,则需要将内存动态分配到
char**。你所拥有的不是 C 中的有效构造。 -
你应该参考一本 C 的书来学习这门语言。通过反复试验来学习 C 绝对是一件非常糟糕的事情。首先:C“对象”与典型的 OOPL 所称的“对象”非常不同。
-
@DeiDei:
char **不能容纳二维数组!不要留下错误的痕迹。唯一正确的是 OP 需要一个指针。但是对于char (*)[COLS],而不是char **! -
将数字放入
[]