Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C Programming (http://www.velocityreviews.com/forums/f42-c-programming.html)
-   -   Initialize elements in an array (http://www.velocityreviews.com/forums/t436687-initialize-elements-in-an-array.html)

Mars 01-27-2005 08:03 PM

Initialize elements in an array
 
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??

Mars 01-27-2005 09:59 PM

Re: Initialize elements in an array
 
alexmdac@hotmail.com mentioned:
> Mars wrote:
>
>>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~


>
>>Is there any specific functions to do that??

>
> I often use memset to zero arrays.
>


yup~
thx~~

alexmdac@hotmail.com 01-28-2005 08:35 AM

Re: Initialize elements in an array
 
Mars wrote:
> 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.


Prasad 01-28-2005 12:37 PM

Re: Initialize elements in an array
 
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


Richard Bos 01-28-2005 12:51 PM

Re: Initialize elements in an array
 
"Prasad" <prasad.gba@gmail.com> wrote:

> To add -


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

infobahn 01-28-2005 01:02 PM

Re: Initialize elements in an array
 
Prasad wrote:
>
> 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).


All times are GMT. The time now is 10:47 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.