digitalmars.D.learn - how to initialize an array of struct
- westcity <westcity1973 hotmail.com> Feb 12 2009
- Frits van Bommel <fvbommel REMwOVExCAPSs.nl> Feb 12 2009
- westcity <westcity1973 hotmail.com> Feb 12 2009
- bearophile <bearophileHUGS lycos.com> Feb 12 2009
- Frits van Bommel <fvbommel REMwOVExCAPSs.nl> Feb 12 2009
- torhu <no spam.invalid> Feb 12 2009
- westcity <westcity1973 hotmail.com> Feb 13 2009
My code is as following:
struct Point {
float x, y, z ;
};
int main ()
{
Point[3] pts = [
{1.0, 0.0, 0.0} ,
{0.0, 1.0, 0.0} ,
{0.0, 0.0, 1.0}
];
return 0 ;
}
But, the compiler report "Error: array initializers as expressions are not
allowed".
Then, how do I initialize an array of struct ?
Feb 12 2009
westcity wrote:My code is as following: struct Point { float x, y, z ; }; int main () { Point[3] pts = [ {1.0, 0.0, 0.0} , {0.0, 1.0, 0.0} , {0.0, 0.0, 1.0} ]; return 0 ; } But, the compiler report "Error: array initializers as expressions are not allowed".
That message's pretty messed up: array initializers look like [1.0, 0.0, 0.0] in D.Then, how do I initialize an array of struct ?
Replacing the middle lines with these works: Point(1.0, 0.0, 0.0) , Point(0.0, 1.0, 0.0) , Point(0.0, 0.0, 1.0)
Feb 12 2009
Frits van Bommel дµ½:westcity wrote:My code is as following: struct Point { float x, y, z ; }; int main () { Point[3] pts = [ {1.0, 0.0, 0.0} , {0.0, 1.0, 0.0} , {0.0, 0.0, 1.0} ]; return 0 ; } But, the compiler report "Error: array initializers as expressions are not allowed".
That message's pretty messed up: array initializers look like [1.0, 0.0, 0.0] in D.Then, how do I initialize an array of struct ?
Replacing the middle lines with these works: Point(1.0, 0.0, 0.0) , Point(0.0, 1.0, 0.0) , Point(0.0, 0.0, 1.0)
Feb 12 2009
westcity Wrote:But, the compiler report "Error: array initializers as expressions are not allowed". Then, how do I initialize an array of struct ?
Move the definition out of main (note that ; after the struct isn't required): struct Point { float x, y, z; } Point[3] pts = [{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}]; void main () {} Bye, bearophile
Feb 12 2009
bearophile wrote:westcity Wrote:But, the compiler report "Error: array initializers as expressions are not allowed". Then, how do I initialize an array of struct ?
Move the definition out of main (note that ; after the struct isn't required): struct Point { float x, y, z; } Point[3] pts = [{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}]; void main () {}
The fact that *does* compile just makes the error message all the more crazy...
Feb 12 2009
On 12.02.2009 15:16, Frits van Bommel wrote:bearophile wrote:westcity Wrote:But, the compiler report "Error: array initializers as expressions are not allowed". Then, how do I initialize an array of struct ?
Move the definition out of main (note that ; after the struct isn't required): struct Point { float x, y, z; } Point[3] pts = [{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}]; void main () {}
The fact that *does* compile just makes the error message all the more crazy...
It should compile inside of main if declared static. It's just the error message that's a bit off.
Feb 12 2009
bearophile дµ½:westcity Wrote:But, the compiler report "Error: array initializers as expressions are not allowed". Then, how do I initialize an array of struct ?
Move the definition out of main (note that ; after the struct isn't required): struct Point { float x, y, z; } Point[3] pts = [{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}]; void main () {} Bye, bearophile
Feb 13 2009









westcity <westcity1973 hotmail.com> 