更改结构C 内部阵列的大小

Changing the size of an array inside of a struct C++

本文关键字:阵列 内部 结构      更新时间:2023-10-16

i具有下面显示的结构。

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 []'是无法分配的

一个简单的解决方案是:

struct thread_data{
    int staringPoint;
    int endingPoint;
    std::vector<double> query;
}; 
// ...
for(int i=0; i < 5;i++)
    newThreads[i].query.resize(userNumber);

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