Programación General > C/C++
Duda funcion con nº de parametros variables
(1/1)
krnl64:
Hola a todos.
Hace un tiempo les pregunte acerca de como hacer un scanf personalizado.
Me dijeron como podia leer los datos correctamente con fgets y sscanf. Hasta aqui ok.
Bueno, hice la función y me dio por iniciar la variable referenciada dentro de la función pero no me lo hace bien.
Les enseño el codigo y les explico:
--- Código: C --- void myscanf(const char *formato,...){ char bufferinterno[80];int vars=0; /* codigo para contar los argumentos de entrada basicamente cuento los % para saber las variables que tengo que leer (almacenado en vars)*/ /* Inicio el buffer interno */memset(bufferinterno,0,sizeof(bufferinterno)); /* intento iniciar la variable referenciada */memset(*(&format+vars),0,sizeof(*(&format+vars))); fgets(....);sscanf(...); }
Lo que me ocurre es que cuando hago esto
--- Código: C --- char buffer[50];myscanf("%s",buffer);
El memset de la linea 19 no inicia correctamente el buffer porque *(&format+vars) apunta al primer caracter del buffer y no hay forma de saber cuál es su tamaño para iniciarlo correctamente.
Hay alguna forma de saber cuanto ocupa la variable referenciada o el unico remedio seria pasarle a la función su tamaño para iniciarla correctamente ?
O inciarla antes de pasarsela a la función.
Gracias
Eternal Idol:
Pasale el tamaño o inicializala antes de la funcion ...
krnl64:
Trabajar con punteros si uno no tiene cuidado puede causar desastres xD.
Gracias.
Navegación
Ir a la versión completa