c++ - 生成整数数组

标签 c++ visual-c++

我是 C++ 的新手,我想编写一个程序来生成一个整数数组。我一直在行中收到错误

test[i][j]=i;

invalid types 'int[int]' for array 

谁能告诉我这里出了什么问题?提前致谢。

int main()
{
    int rows;
    int cols;
    cin>>rows>>cols;
    int test[rows][cols];
    get_test(rows,cols,&test[0][0]);
    cout<<test[1][1]<<endl;
    return 0;
}

int get_test(int rows,int cols,int *test)
{ 
    int h=rows;
    int w=cols;
    int i=0,j=0;

    for(i=0;i<h;i++)
    {
        for (j=0;j<w;j++)
        {
            test[i][j]=i;
        }
    }

    return 0;
}

最佳答案

int test[rows][cols]; 非编译时值是一个可变长度数组,它是一些编译器的可能扩展。

更喜欢使用 std::vector 代替:

int get_test(std::vector<std::vector<int>>& test)
{ 
    for (int i = 0;i != test.size(); ++i)
    {
        for (int j = 0; j != test[i].size(); ++j)
        {
            test[i][j] = i;
        }
    }
    return 0;
}

int main()
{
    int rows;
    int cols;
    cin>>rows>>cols;
    std::vector<std::vector<int>> test(rows, std::vector<int>(cols));
    get_test(test);
    cout << test[1][1] << endl;
    return 0;
}

关于c++ - 生成整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24737872/

相关文章:

visual-c++ - Visual C++ 调试错误 - wuser32.pdb 未加载

c++ - 用于继承的 C++ 模板参数问题

c++ - 如何在cocos2d-x中将变量传递给lua函数?

c++ - 使用编译时常量枚举转换为字符串

c++ - 用基本类型标记的 Boost Graph 边缘的简单点输出

c++ - 为什么包含windows.h会产生语法错误,从而阻止类的实例化? (C2146,C2065)

c++ - 正确使用 AddClipboardFormatListener 并订阅 WM_CLIPBOARDUPDATE 消息

c++ - 如何为 FTP 实现二进制(TYPE I)

c++ - 使用三个参数重载 operator new 和 operator delete

c++ - 确保每次碰撞仅触发一次碰撞检测