我的结构如下所示。
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 []'不可分配
答案 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;