稍后在结构类型中指定数组大小(c ++)

时间:2016-11-25 20:39:32

标签: c++ arrays struct

所以我对c ++有一些问题。

我有这样的结构:

typedef struct{
    int n;
    int x[];
    int y[];
} MyStruct;

我的问题是我无法弄清楚如何在稍后的函数中指定x,y数组的大小,因为它来自输入并且以前不知道。它似乎是一个动态的,但我希望它是静态的。 顺便说一句,这个结构中的变量也是一个数组。

E.g。在C#中,它的工作原理如下:

MyStructVariable[ (an index) ].x = new int[value];

我是c + +的新手,如果这是一件小事,我无法弄明白。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

  

E.g。在C#中,它的工作原理如下:

MyStructVariable[ (an index) ].x = new int[value];

C ++与C#不同,特别是在处理动态内存分配方面。

您在C ++中想要的是std::vector<int>

struct MyStruct {
    std::vector<int> x;
    std::vector<int> y;
    MyStruct(int value) : x(value), y(value) {}
};

struct MyStruct {
    int x;
    int y;
};

std::vector<MyStruct> myVector(mysize);
myVector[an index].x = value;