• Domingo 15 de Diciembre de 2024, 11:53

Autor Tema:  Duda funcion con nº de parametros variables  (Leído 1027 veces)

krnl64

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Duda funcion con nº de parametros variables
« en: Miércoles 27 de Mayo de 2009, 22:24 »
0
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
  1.  
  2.   
  3. void myscanf(const char *formato,...)
  4. {
  5.  
  6. char bufferinterno[80];
  7. int vars=0;
  8.  
  9.  /* codigo para contar los argumentos de entrada
  10.    basicamente cuento los % para saber las variables
  11.   que tengo que leer
  12.   (almacenado en vars)
  13. */
  14.  
  15. /* Inicio el buffer interno */
  16. memset(bufferinterno,0,sizeof(bufferinterno));
  17.  
  18. /* intento iniciar la variable referenciada */
  19. memset(*(&format+vars),0,sizeof(*(&format+vars)));
  20.  
  21. fgets(....);
  22. sscanf(...);
  23.  
  24. }
  25.  
  26.  
  27.  

Lo que me ocurre es que cuando hago esto

Código: C
  1.  
  2. char buffer[50];
  3. myscanf("%s",buffer);
  4.  
  5.  

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

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Duda funcion con nº de parametros variables
« Respuesta #1 en: Miércoles 27 de Mayo de 2009, 22:33 »
0
Pasale el tamaño o inicializala antes de la funcion ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

krnl64

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Duda funcion con nº de parametros variables
« Respuesta #2 en: Miércoles 27 de Mayo de 2009, 22:45 »
0
Trabajar con punteros si uno no tiene cuidado puede causar desastres xD.
Gracias.