"struct" error message

v1.5.6r2 OSX
I've tried to use following struct, what's wrong i get this error message when
i want assign values:
error: expected constructor, destructor, or type conversion before '.' token
I tried this structure on coderunner, no problem

struct byte2
{
uint8_t addr;
uint8_t home[2];
uint8_t value[2];
};

struct byte2 preamble;
preamble.addr = 0; // error message
preamble.home[0] = 0x00; // error message
preamble.home[1] = 0x10; // error message

struct byte2
{
  uint8_t addr;
  uint8_t home[2];
  uint8_t value[2];
};


void setup() 
{
  struct byte2 preamble;
  preamble.addr = 0; // error message
  preamble.home[0] = 0x00; // error message
  preamble.home[1] = 0x10; // error message
}

void loop() 
{
}
Sketch uses 326 bytes (3%) of program storage space. Maximum is 8,192 bytes.
Global variables use 9 bytes (1%) of dynamic memory, leaving 503 bytes for local variables. Maximum is 512 bytes.

No errors.

To be specific,
preamble.addr = 0;

is code not an initializer. You either need to initialize when you declare and define the struct, or run the code inside a function.

Thank you,
i see what the problem is, but i did not understand really why.
If I make a init like preamble.addr = 0 inside the setup it works.