Advertisement
Guest User

Untitled

a guest
May 28th, 2015
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. void*crearRegistro(const char*formato, ...) {
  2.     void*pt, *auxRegistro[10], **reg;
  3.     pt = &formato;
  4.     pt = (char**) pt + 1;
  5.     int*ptI, cont = 0, *codigo;
  6.     char**ptS, *ptC, *ptrCadena, *ptrLetra;
  7.     double*ptD, *monto;
  8.     reg = new void*[strlen(formato)];
  9.     for (int i = 0; formato[i]; i++) {
  10.         switch (formato[i]) {
  11.             case 'i':
  12.                 ptI = (int*) pt;
  13.                 codigo = new int;
  14.                 *codigo = *ptI;
  15.                 reg[cont] = codigo;
  16.                 pt = (int*) pt + 1;
  17.                 cont++;
  18.                 break;
  19.             case 'f':
  20.                 ptD = (double*) pt;
  21.                 monto = new double;
  22.                 *monto = *ptD;
  23.                 reg[cont] = monto;
  24.                 pt = (double*) pt + 1;
  25.                 cont++;
  26.                 break;
  27.             case 's':
  28.                 ptS = (char**) pt;
  29.                 ptrCadena = new char [strlen(*ptS) + 1];
  30.                 strcpy(ptrCadena, *ptS);
  31.                 reg[cont] = ptrCadena;
  32.                 pt = (char**) pt + 1;
  33.                 cont++;
  34.                 break;
  35.             case 'c':
  36.                 ptC = (char*) pt;
  37.                 ptrLetra = new char;
  38.                 *ptrLetra = *ptC;
  39.                 reg[cont] = ptrLetra;
  40.                 pt = (int*) pt + 1;
  41.                 cont++;
  42.                 break;
  43.         }
  44.     }
  45.     return reg;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement