Jeronimo Pellegrini <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > > There's another problem with the above C++ code: If ny and nz > > aren't constant, you can't write > > > > double s[ny][nz]; > > > > Instead, either you allocate the array in two stages: > > > > double** s = new (double*)[ny]; > > for (j=0; j < ny; ++j) s[j] = new double[nz]; > > Actually, the first version works -- and both C and C++ (tested here with > gcc -- not sure it it became a standard or not)) will dynamically allocate > memory for you. Try this: [...] > int size1, size2, i, j; > cin >> size1; > cin >> size2; > double vec[size1][size2];
Wow, that's news to me! The first ANSI C++ standard (1997 or 1998) doesn't allow it. "The number of elements of the array, the array bound, must be a constant expression. . . ." (Stroustrup, _The C++ Programming Language_, 3rd ed., p.89. Although this book isn't the standard document itself, I don't expect that there would be such a big difference as this.) And, certainly, neither size1 or size2 above is a constant expression. I don't know whether the C++ standard has been revised since. If this feature is or become standard or de facto standard, that's a step forward for numerical computations. Thanks for the info, Ryo -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]