#include <Arduino.h>

struct stPunto {
  char Cod;
  int PosX;
  int PosY;
  int PosZ;
};

stPunto PuntoOrigen, PuntoDestino;

stPunto* arPuntos[2]{ &PuntoOrigen, &PuntoDestino };

void IniPunto(stPunto &_Punto, const char _Cod, int _X, int _Y, int _Z);
void MostrarPunto(stPunto &_Punto);

void setup() {
  Serial.begin(9600);

  IniPunto( PuntoOrigen, 'O',  1,  2,  3);
  IniPunto(PuntoDestino, 'D', 10, 20, 30);

  MostrarPunto(PuntoOrigen);
  MostrarPunto(*arPuntos[0]);
  MostrarPunto(PuntoDestino);
  MostrarPunto(*arPuntos[1]);

  delay(1000);
}

void loop() {
  // put your main code here, to run repeatedly:
}

void MostrarPunto(stPunto &_Punto) {
  Serial.print("Punto: ");
  Serial.print(_Punto.Cod);
  Serial.print("  X: ");
  Serial.print(_Punto.PosX);
  Serial.print("  Y: ");
  Serial.print(_Punto.PosY);  
  Serial.print("  Z: ");
  Serial.println(_Punto.PosZ);
}

void IniPunto(stPunto &_Punto, const char _Cod, int _X, int _Y, int _Z) {
  _Punto.Cod = _Cod;
  _Punto.PosX = _X;
  _Punto.PosY = _Y;
  _Punto.PosZ = _Z;
}