Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void*crearRegistro(const char*formato, ...) {
- void*pt, *auxRegistro[10], **reg;
- pt = &formato;
- pt = (char**) pt + 1;
- int*ptI, cont = 0, *codigo;
- char**ptS, *ptC, *ptrCadena, *ptrLetra;
- double*ptD, *monto;
- reg = new void*[strlen(formato)];
- for (int i = 0; formato[i]; i++) {
- switch (formato[i]) {
- case 'i':
- ptI = (int*) pt;
- codigo = new int;
- *codigo = *ptI;
- reg[cont] = codigo;
- pt = (int*) pt + 1;
- cont++;
- break;
- case 'f':
- ptD = (double*) pt;
- monto = new double;
- *monto = *ptD;
- reg[cont] = monto;
- pt = (double*) pt + 1;
- cont++;
- break;
- case 's':
- ptS = (char**) pt;
- ptrCadena = new char [strlen(*ptS) + 1];
- strcpy(ptrCadena, *ptS);
- reg[cont] = ptrCadena;
- pt = (char**) pt + 1;
- cont++;
- break;
- case 'c':
- ptC = (char*) pt;
- ptrLetra = new char;
- *ptrLetra = *ptC;
- reg[cont] = ptrLetra;
- pt = (int*) pt + 1;
- cont++;
- break;
- }
- }
- return reg;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement