如何在函数内动态分配矩阵C ++

时间:2018-03-02 20:18:45

标签: c++ dynamic-memory-allocation

使用new时遇到了一些问题。我希望你能指出我做错了什么。这是我的代码示例:

unsigned ** Create_Matrix(const unsigned &n) {
    unsigned **matrix=new unsigned*[n];
    for (unsigned i = 0; i < n; ++i)
        matrix[i]=new unsigned[n];
    return matrix;
}
int main() {
    unsigned n;
    std::cin>>n;
    unsigned** matrix=Create_Matrix(n);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

尽量忘记您对newnew[]的了解。真。我的意思是。

#include <vector>
#include <iostream>

using value_type = double; // Or whatever
using row = std::vector<value_type>;
using matrix = std::vector<row> ;

matrix create_matrix(unsigned n) {
    matrix mat(n);
    for (auto& r : mat) {
        r.resize(n);
    }
    return mat;
}
int main() {
    unsigned n;
    std::cin >> n;
    auto mat = create_matrix(n);
    return 0;
}