patterncppCritical
Initialization of all elements of an array to one default value in C++?
Viewed 0 times
arraydefaultvaluealloneelementsinitialization
Problem
C++ Notes: Array Initialization has a nice list over initialization of arrays. I have a
expecting it to be full with -1's but its not, only first value is and the rest are 0's mixed with random values.
The code
works just fine and sets each element to 0.
What am I missing here.. Can't one initialize it if the value isn't zero ?
And 2: Is the default initialization (as above) faster than the usual loop through the whole array and assign a value or does it do the same thing?
int array[100] = {-1};expecting it to be full with -1's but its not, only first value is and the rest are 0's mixed with random values.
The code
int array[100] = {0};works just fine and sets each element to 0.
What am I missing here.. Can't one initialize it if the value isn't zero ?
And 2: Is the default initialization (as above) faster than the usual loop through the whole array and assign a value or does it do the same thing?
Solution
Using the syntax that you used,
says "set the first element to
In C++, to set them all to
In portable C, you have to roll your own loop. There are compiler-extensions or you can depend on implementation-defined behavior as a shortcut if that's acceptable.
int array[100] = {-1};says "set the first element to
-1 and the rest to 0" since all omitted elements are set to 0.In C++, to set them all to
-1, you can use something like std::fill_n (from ``):std::fill_n(array, 100, -1);In portable C, you have to roll your own loop. There are compiler-extensions or you can depend on implementation-defined behavior as a shortcut if that's acceptable.
Code Snippets
int array[100] = {-1};std::fill_n(array, 100, -1);Context
Stack Overflow Q#1065774, score: 470
Revisions (0)
No revisions yet.