I am very new to C++ and I am wondering if I can do the following,
int a =5; int b[a];
If so, what would happen if value of a changed? and any drawback using this.
If not,why it that?
I tried the same code on an online c++ compiler and it does work. but i just dont know if this is a standard practice or not. if not, what would be the standard practices of refering a dynamic value to initialize an array?
No you cannot do that. Array bounds in C++ must be constants. This is legal
const int a = 5; // a is a constant int b[a];
Some compilers do allow your code, but it is an extension to the C++ language called a variable length array or VLA.
But even on the compilers that do allow it, nothing happens to
b if you change
a, it will still have the same size as when it was created.
You can avoid all these issues by using a vector, like this
std::vector<int> b(a); That is the correct way to do what you are asking for. You need to
#include <vector> for the