Deberías revisar la implementación del operador de asignación (=) de tu clase "Asociacion". Este operador se llama al hacer la asignación "*as=consecuentes[1]".
Por otro lado, as=&consecuentes[0]; esto no va a tener ningún efecto porque "as" está declarada a nivel local, luego si haces que "as" apunte a otro objeto, ese cambio se va a perder fuera de la función:
Código C++:
Ver originalvoid func( int* ptr )
{
*ptr = 200;
ptr = 100;
}
int main( )
{
int dato;
int* ptr = &dato;
func( ptr );
printf( "%d\n", *ptr
); // imprime 200, ok printf( "%p\n, ptr ); // Va a ser distinto de 100, este cambio no se ha aplicado }