如何在不使用std::string**
等C方法的情况下在C ++中调整动态多维数组malloc/free
的大小?
答案 0 :(得分:5)
在C ++中不可能重新分配数组/矩阵。因此,如果要调整数组大小,则需要使用C函数 realloc 或new[] + copy + delete[]
的组合。
但最好的选择是使用C ++标准库(std::vector
),因为允许您插入/删除/更新而不考虑内存重新分配。
示例(C ++ 11):
#include <string>
#include <vector>
int main(){
// *using* is like a alias: when the compiler finds the type "stringVec"
// it will replace by "std::vector<std::string>"
using stringVec = std::vector<std::string>;
std::vector<stringVec> matrix;
matrix.push_back({"1", "2", "3"}); // inserts a row
}