c++: Error: variable length array of non-POD eleme

2020-02-13 02:06发布

问题:

I basically have

int x;
cout << "Please enter how many classrooms there are: ";
cin >> x;
classrooms bunchaClassrooms[x]; //classrooms is a previously declared class.

For some reason it gives the error 'variable length array of non-POD element type 'x'' and I have no idea why, if I were to use a vector of classrooms instead, how could i easily populate it (using a for loop i'm guessing) depending on the user's input.

回答1:

You can use std::vector:

std::vector<classrooms> bunchaClassrooms;
for (int i = 0; i < x; ++i)
{
  classrooms c;
  <... enter classrooms info ...>
  v.push_back(c);
}

Array with non-constant boundary isn't good.



回答2:

Variable-lengthed arrays is not standard feature of the language. You have to allocate on the heap or create a vector.