复合类型的动态数组
Dynamic array of compound type
是否可以在没有类型别名的情况下制作相同的东西?
void f()
{
typedef char Str[16];
int n=256;
Str** p = new Str*[n];
delete[] p;
}
我尝试了以下方法,但没有奏效:
// char(**p)[16] = new char(*[n])[16]; // error
// char(**p)[16] = new (char(*[n])[16]); // error
似乎您想创建一个动态数组,其中元素类型为char (*)[16]
.不,没有类型别名就无法完成。要使用动态范围,您需要使用以下形式的新表达式(C++17 [expr.new]/1(:
::
(可选(new
新放置位置(可选( 新类型 ID 新初始值设定项(可选(
但是,如果您查看new-type-id、new-declarator 和noptr-new-declarator的定义,您会发现不允许使用括号来更改运算符优先级。因此,我们不能在此上下文中显式写下所需的类型。
最佳解决方案:使用std::vector
.如果你不能做到这一点(也许你的目标是一些非常有限的独立实现(,那么使用 typedef。
相关文章:
- std::向量与传递值的动态数组
- 将数组动态分配到具有指针参数的函数中
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 使用 new: "potentially uninitialized pointer"将对象数组动态分配给指针
- 为什么C 没有方便的方式来为多维数组动态分配内存
- 如何制作具有动态大小的数组?动态数组的一般用法(可能还有指针)
- c++中的数组动态内存分配
- 多维数组动态分配的内存图
- 如何在 c++ 中使用 2-D 固定数组为 4-D 数组动态分配内存
- C++ 我在数组/动态内存方面遇到了一些问题
- C++ 中从数组动态强制转换
- C++中高维数组动态内存分配的正确方法.
- 从 C++ 结构中包含的指针数组动态分配和访问内存
- 对象数组动态内存分配
- 为二维数组动态分配内存时出错
- 如何将2d数组动态分配给结构
- 为结构数组c++动态分配内存
- 将数组动态添加到多维数组
- 类中的类数组-动态数组(c++)有问题
- 分配对象数组动态冻结