digitalmars.D.learn - how to initialize an array of struct
- westcity (15/15) Feb 12 2009 My code is as following:
- Frits van Bommel (7/26) Feb 12 2009 That message's pretty messed up: array initializers look like [1.0, 0.0,...
- westcity (2/31) Feb 12 2009 Thanks.
- bearophile (11/13) Feb 12 2009 Move the definition out of main (note that ; after the struct isn't requ...
- Frits van Bommel (3/18) Feb 12 2009 The fact that *does* compile just makes the error message all the more
- torhu (3/21) Feb 12 2009 It should compile inside of main if declared static. It's just the
- westcity (2/20) Feb 13 2009 It is perfect, thanks.
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:Thanks.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:The fact that *does* compile just makes the error message all the more crazy...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 () {}
Feb 12 2009
On 12.02.2009 15:16, Frits van Bommel wrote:bearophile wrote:It should compile inside of main if declared static. It's just the error message that's a bit off.westcity Wrote:The fact that *does* compile just makes the error message all the more crazy...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 () {}
Feb 12 2009
bearophile дµ½:westcity Wrote:It is perfect, thanks.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