在struct C ++中更改数组的大小

时间:2016-11-28 23:06:06

标签: c++ arrays struct

我的结构如下所示。

struct thread_data{
   int staringPoint;
   int endingPoint;
   double query[];
}; 

用户输入一个数字,我需要输入数字作为数组的大小。有没有办法为数组分配内存或在用户输入数字后设置该数组的大小?

我试着这样做:

int userNumber = 10;
struct thread_data newThreads[5];


for(int i=0; i < 5;i++){
    newThreads[i].query = new double[userNumber];
}

但我收到此错误消息:
数组类型'double []'不可分配

2 个答案:

答案 0 :(得分:3)

一个简单的解决方案是:

struct thread_data{
    int staringPoint;
    int endingPoint;
    std::vector<double> query;
}; 

// ...

for(int i=0; i < 5;i++)
    newThreads[i].query.resize(userNumber);

答案 1 :(得分:1)

您可以正确分配,但将double query[];更改为double *query;