c++ - 从命令行输入分配二维数组

标签 c++

我正在尝试通过以下方式从命令行输入分配数组。但我仍然收到警告。将错误消息粘贴在下面。请查看它。哪些更改可以使此代码完美。

int ni = atoi(argv[1]);
int nj = atoi(argv[2]);

int *a[ni][nj];

for(i=1; i<ni; i++)
{
    for(j=1; j<nj; j++)
    {
        a[i][j] = 10*j + i;
    }
    printf("%d", a[i][j]);
}

编译器输出:

In function main:
warning: incompatible implicit declaration of built-in function malloc
warning: assignment makes pointer from integer without a cast

最佳答案

由于您使用的是 C++,因此我建议采用以下方式:

#include <vector>
#include <iostream>

    // ...

    int ni = atoi(argv[1]);
    int nj = atoi(argv[2]);

    std::vector< vector<int> > a(ni, vector<int>(nj));

    for (int i = 0; i<ni; i++)
    {
        for (int j = 0; j<nj; j++)
        {
            a[i][j] = 10 * j + i;
            std::cout << a[i][j];
        }       
    }   

关于c++ - 从命令行输入分配二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897380/

相关文章:

java - C和Java中的逻辑差异

c++ - Regexec() 没有给出期望的结果

c++ - 如何检查一个 vector 是否是另一个 vector 的子集?

C++ 模板、静态方法和构造函数

c++ - 如果出现警告,如何立即使自动测试失败

c++ - 从函数返回字符指针

c++ - 不支持 boost::filesystem::create_symlink

c++ - 访问/填充来自不同类的 vector ?

c++ - C++ 是否支持 'finally' block ? (我一直听到的这个 'RAII' 是什么?)

c++ - 在 gcc 上没有警告的情况下确定类方法的返回类型