In C, I know I can make an array like this
int myarray[5] = {a,b,c,d,e};
However, imagine the array was already initialised like
int myarray[5];
and then at some point afterwards, I wanted to set/change all the values without going
myarray[0] = a;
myarray[1] = b;
myarray[2] = c;
myarray[3] = d;
myarray[4] = e;
but rather, something more like
myarray = {a,b,c,d,e};
The reason why I ask this is because if I declare my array on the heap, I will initialise the array like:
int* myarray = malloc(5*sizeof(int));
Then I would like to be able to enter in all the values in one line (mostly to make my code look cleaner)
Here is a solution that is all standards compatible (C89, C99, C++)
It has the advantage that you only worry about entering the data in one place. None of the other code needs to change - there are no magic numbers. Array is declared on the heap. The data table is declared const.
(Click here to try running it in Codepad)
No, C doesn't have such feature. If you are setting all array elements to the same value use
memset(3)
.