如何创建正确的2D字符数组?

时间:2015-06-05 02:12:04

标签: c++ arrays

char **create_2darray(int rows, int cols){
    char **a;
    a = new char *[rows];
    for(int i;i<rows;i++){
        a[i]=new char[cols];
    }
    return a;
}
char **set_2darry(int rows, int cols, char** array){
    char ** a = array;
    for(int i = 0; i < rows; i++){
        for(int x = 0; x < cols; x++){
            a[i][x]= '0';
        /* here is the problem */
        }
    }
    return a;
}

struct GOL{
    char** table;
    int gen;
    int rows;
    int cols;
};

int main(int argc, const char * argv[]) {
    GOL game;
    char** table2= create_2darray(20, 40);
    game.table = set_2darry(20, 40 , table2);
    cout<< game.table;


    return 0;
}

我想用不同的函数创建一个2D数组,因为这就是我教授需要我们做的事情,但似乎没有用。 我怎么能修改它,或者它有什么问题?

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

for (int i; i<rows; i++)

由于i未初始化,您的程序将执行某些操作,但这并不意味着它将是您所期望的。体面的编译器甚至会告诉你。