Dirección de puntero extraño para miembro de datos de Struct individual

Observo algún comportamiento extraño hoy, el código es el siguiente:

El código :

#include <iostream>

struct text
{
    char c;
};

int main(void)
{
    text experim = {'b'};
    char * Cptr = &(experim.c);

    std::cout << "The Value \t: " << *Cptr << std::endl ;
    std::cout << "The Address \t: " << Cptr << std::endl  ; //Print weird stuff

    std::cout << "\n\n";

    *Cptr = 'z';   //Attempt to change the value

    std::cout << "The New Value \t: " << *Cptr <<std::endl ;
    std::cout << "The Address \t: " << Cptr << std::endl ; //Weird address again

    return 0;
}

La pregunta :1.) La única pregunta que tengo es por quécout theAddress&nbsp;¿Por el código anterior saldría algún valor extraño?

2.) ¿Por qué todavía puedo cambiar el valor del miembro?c&nbsp;¿Dereferenncing el puntero que tiene dirección extraña?

Gracias.