在C ++中定义2D数组

时间:2015-11-17 20:14:09

标签: c++ arrays

根据我的理解,我们需要在c ++中为2d数组定义一个常量行和一个常量列大小,除非我们动态分配它。

我尝试了这段代码,但没有任何错误。

    std::vector<std::string> strs;
    for(int i ; i < 10; ++i)
    {
       strs.push_back("This is a test"+ std::to_string(i)); 
    }
    int length = 0;
    for(int i ; i < 10; ++i)
    {
       if(strs[i].size() > length)
           length = strs[i].size();
    }

    char c[20][length + 1];
    for(int i ; i < 20; ++i)
    {
       memcpy(c[i], "Test", 5);
       cout << c[i] << endl;
    }

有人可以解释一下如何定义一个可变长度的二维字符数组吗?

由于 ķ

1 个答案:

答案 0 :(得分:1)

char c[20][length + 1];
如果length不是编译时常量,则

不是合法的C ++。一些编译器,如g ++,允许它作为扩展。