C++,struct init 多个实例

标签 c++ struct

我有一个结构初始化:

nodeBuf = new Node[num](); //num is some number of different instances of this struct

我知道这会创建我的结构的 num 个实例。但我不确定如何访问每个实例。

我试过 nodeBuf[num],没用

最佳答案

如果num > 0只有nodeBuf[0]直到nodeBuf[num -1]有效。如果 num == 0 则索引运算符访问元素不是全部 (= UB)。

示例:

struct Node
{
  std::string name;
};

void f()
{
  int num = 4;
  Node* nodeBuf = new Node[num];
  nodeBuf[1].name = "Test";
  delete[] nodeBuf;
}

关于C++,struct init 多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231871/

相关文章:

c++ - 字符串化模板参数

c++ - MSVC 2013 'type': 不是 'std::enable_if<false,void> 的成员

c++ - Cmake 中的 Boost 文件系统版本错误

c++ - 双数据类型导致错误

c++ - 使用 xsd cxx-tree 解析器的 XSD 到 C++ 类。从文件打开 xml 的方法。

c - 释放指针重新分配自身?

c - 结构变量没有在c中初始化

c++ - 结构体之外的函数定义 C++

c - 采用指向结构的指针和要显示的变量的函数(实际上类似于 python 中的 'in' 运算符)

arrays - const 结构成员的 typedef 中的灵活数组大小