Initialize elements in an array

M

Mars

If I want to initialize elements in an array (to a value),
is using for loops the only method??

Is there any specific functions to do that??
 
M

Mars

(e-mail address removed) mentioned:
Mars said:
If I want to initialize elements in an array (to a value),
is using for loops the only method??


You can use initialiser lists when you define your array e.g.

int array[5] = { 1, 2, 3, 4, 5 };

icic~
so that's the same as Java~

I often use memset to zero arrays.

yup~
thx~~
 
A

alexmdac

Mars said:
If I want to initialize elements in an array (to a value),
is using for loops the only method??

You can use initialiser lists when you define your array e.g.

int array[5] = { 1, 2, 3, 4, 5 };
Is there any specific functions to do that??
I often use memset to zero arrays.
 
P

Prasad

To add -
If you wish to only init few items then you may use :
int x[5] = {9, 3};
In the above example, only the first two elements are set to the values
mentioned, most compilers do initialise the rest of the elements to
zero.
Though, not sure what the ANSI "C" standards book says about the init
of the remaining elements.


~ Prasad
 
R

Richard Bos

Prasad said:

To add _to what_? Learn to use Google Broken Beta properly, get it to
provide a proper quotation, or get a real newsreader!
If you wish to only init few items then you may use :
int x[5] = {9, 3};
In the above example, only the first two elements are set to the values
mentioned, most compilers do initialise the rest of the elements to
zero.

Not most. All. The Standard requires it.

Richard
 
I

infobahn

Prasad said:
To add -
If you wish to only init few items then you may use :
int x[5] = {9, 3};
In the above example, only the first two elements are set to the values
mentioned, most compilers do initialise the rest of the elements to
zero.

This is guaranteed.
Though, not sure what the ANSI "C" standards book says about the init
of the remaining elements.

In the case of a partially-initialised aggregate or union object,
"all subobjects that are not initialized explicitly shall be
initialized implicitly the same as objects that have static
storage duration." - 6.7.8(19).

"If an object that has static storage duration is not initialized
explicitly, then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or
unsigned) zero;
— if it is an aggregate, every member is initialized (recursively)
according to these rules;
— if it is a union, the first named member is initialized (recursively)
according to these rules." - 6.7.8(10).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top