Consider the following piece of code:

```cpp
typedef struct
{
    int out;
    struct
    {
        int in1;
        struct
        {
            int in_int2;
            char in_char2;
        } inner2[3];
    } inner1[2];
} outer;

outer o1;

```

How do I use a pointer to point to inner structures, say `o1.inner[0].inner[1]` and assign the values to the same?

i.e. (pseudo code provided for explanation. Exact syntax is being asked:

```cpp
pointer *my_p = o1.inner[0].inner[1];
my_p->in_int2 = 2;

```