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

[0] Índice de Mensajes

Ir a la versión completa