¿Por qué no se bloquea el programa cuando llamo a una función miembro a través de un puntero nulo en C ++?

#include "iostream"
using namespace std;
class A
{
public:
    void mprint()
    {
        cout<<"\n TESTING NULL POINTER";
    }
};

int main()
{
    A *a = NULL;
    a->mprint();
    return 0;
}

Me sale como "PRUEBA DEL PUNTERO NULO". ¿Alguien puede explicar por qué este programa está imprimiendo la salida en lugar de fallar? Lo comprobé en Dev C ++ y el compilador aCC dio el mismo resultado.

Respuestas a la pregunta(6)

Su respuesta a la pregunta