gpt4 book ai didi

c++ - 用 new() 初始化一个 int[][]

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:49 34 4
gpt4 key购买 nike

我是一个 C++ 新手。在学习的过程中,我遇到了这个问题。

如果我有这样的指针

int (*a)[2][3]

cdecl.org 将其描述为 declare a as pointer to array 2 of array 3 of int:

当我尝试

int x[2][3];

a = &x;

这有效。

我的问题是在与 new() 一起使用时如何初始化 a 说类似

a = new int [] [];

我尝试了一些组合,但不太正确。

任何帮助将不胜感激。

最佳答案

你必须分两步完成 - 首先分配一个指针数组到指针(动态分配的数组),然后依次分配它们中的每一个。总的来说,我认为更好的选择是简单地使用 std::vector - 这是执行此类操作的首选 C++ 方式。

这里还有一个关于如何实现你想要的东西的例子:

int a**;
a = new int*[2];
for (int i =0; i< 2;++i){
a[i] = new int[3]
}

... use them ...
// Don't forget to free the memory!
for (int i = 0; i< 2; ++i) {
delete [] a[i];
}

delete [] a;

编辑:并按默认要求 - vector 版本:

std::vector<std::vector<int> > a(2, std::vector<int>(3,0));

// Use a and C++ will take care to free the memory.

关于c++ - 用 new() 初始化一个 int[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357067/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com