SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: sk8erlucas en Viernes 18 de Julio de 2003, 20:02

Título: Re: Función
Publicado por: sk8erlucas en Viernes 18 de Julio de 2003, 20:02
Hola, hice una función y por alguna razón no anda.
No sé porque, ya que complia bien pero por alguna razón se traba en tiempo de ejecución. Si alguien pudiera ayudarme le estaría muy agradecido.
La función es la siguiente y tiene ya incluído el fichero de cabecera strdag.h, e iostream:

//Nombre: Verificar Opción.
//Descripción: Nos dice o no si la opción fue correcta o no.
int verop(char *letra, char a, ...)
{
tolower(*letra);

char aceptadas[50];
int num = 0;
aceptadas[num] = a;
num++;

va_list p;

va_start(p, a);
char *arg;
while((arg = va_arg(p, char*)) != 0)
{
aceptadas[num] = *arg;
num++;
}
va_end(p);

/*Ahora ya tenemos todo bien y todas las letras que pueden ser
correctas en una cadena de caracteres.*/

for(int i = 0; i < num; i++)
{
char *p;
p = aceptadas;

if (*p == *letra)
{
return 0;
}
else
{
p++;
}
}

cout << "aba";
return 1;
}

Gracias, si alguno desea hacer uso de a función no pondré objeción.
Título: Re: Función
Publicado por: © Jonathan © en Miércoles 23 de Julio de 2003, 00:38
Hola, quisiera ayudarte en tu problema, pero hay cosas de tu funcion que no entiendo, me gustaria si es posible que detalles mas tu problema y las acciones de cada parte del codigo, si es posible un programa de ejemplo de para que se usaria este codigo, ya que en la funcion:

va_start(p, a);

no se que es eso, si es una funcion creada por ti por favor incluila en el codigo, Espero poder ayudarte, Saludos. :guitar:
Título: Función
Publicado por: sk8erlucas en Viernes 25 de Julio de 2003, 21:28
Éste código estaba en un tutorial de C++ que estoy siguiendo. El objetivo de va_start, va_end, etc. es crear una función que acepte infinitos argumentos.
Todas éstas funciones y variables se encuentran en el fichero de cabecera strdag.h, que supuestamente es una librería ANSI C.
El problema con el programa es que provoca un error en tiempo de ejecución, pero es raro porque compila bien.

Para los curiosos el curso se encuentra en c.conlase.net (Sin www.).