C++ array sizes without constant expressions

Viewed 5110

I'm reading Stroustrup's A Tour of C++. On page 9, he states:

"The size of an array must be a constant expression."

Yet later, on pg. 16, he uses the following code sample:

void vector vector_init(Vector& v, int s)
{
  v.elem = new double[s]; // Allocate an array of s doubles
  v.sz = s;
}

Here s is not a constant expression, so how is initializing v.elem to new double[s] legal?

3 Answers
Related