【发布时间】:2012-12-14 20:35:08
【问题描述】:
我创建了一个生成宾果板的函数,我想返回宾果板。
因为我没想到,它不起作用。
函数如下:
int** generateBoard() {
int board[N][M], i, j , fillNum;
Boolean exists = True;
// initilize seed
srand(time(NULL));
// fill up..
for(i = 0; i < N; ++i) {
for(j = 0; j < M; ++j) {
exists = True;
while(exists) {
fillNum = rand()%MAX_RANGE + 1; // limit up to MAX_RANGE
if(beenAdded(board, fillNum) == Exist) {
continue;
} else {
board[i][j] = fillNum;
exists = False;
}
}
}
}
return board;
}
我在“返回板”行有一个编译错误(红色子线)。
有没有办法返回一个二维数组不使用使用结构\动态分配?
我正在使用 Microsoft Visual C++ Express 2010。
【问题讨论】:
-
使用 malloc 进行板二维数组分配,
-
我不能,这是作业..如果我能,我会这样做..
-
你更好。现在,您正在返回一个在退出函数范围时不再有效的局部变量。其未定义的行为。输入输出参数可以接受吗?
-
不,因为我们还没有学习指针。 (即使我做了..)。无论如何,不需要在功能上这样做。我只是觉得它更清楚..
-
这个函数是否只调用过一次?你学会
static关键字了吗?
标签: c function multidimensional-array