2016-11-28 61 views
-1

我有一个如下所示的结构。更改结构C++内数组的大小

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]; 
} 

但我收到此错误信息:
数组类型“双[]”是不可转让

回答

1

你分配正确的,但变化double query[];double *query;

+0

谢谢,完美的工作! :) – rohit563

3

一个简单的解决方案是:

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

// ... 

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