Consider the following code:

```
int i = 1;
char c[sizeof (i)];
memcpy(c, &i, sizeof (i));
cout << static_cast<int>(c[0]);

```

Please ignore whether this is good code. I know the output depends on the endianness of the system. This is only an academic question.

Is this code:

* Undefined behaviour
* Implementation-defined behaviour
* Well-defined behaviour
* Something else