I want to initialise an array in the format that uses commas to separate the elements surrounded in curly braces e.g:
int array[10]={1,2,3,4,5,6,7,8,9,10};
However, I need to use the new operator to allocate the memory e.g:
int *array = new int[10];
Is there a way to combine theses methods so that I can allocate the memory using the new operator and initialise the array with the curly braces ?
In the new Standard for C++ (C++11), you can do this:
int* a = new int[10] { 1,2,3,4,5,6,7,8,9,10 };
It's called an initializer list. But in previous versions of the standard that was not possible.
The relevant online reference with further details (and very hard to read) is here. I also tried it using GCC and the --std=c++0x
option and confirmed that it works indeed.