Estou com a seguinte dúvida: Como criar uma função com um número indefinido de parâmetros, considerando que estes parametros são arrays?
Testei duas variantes, a primeira foi:
void Fonts (int i, ...)
{
va_list Parameter;
va_start(Parameter, i);
for (int j = 0; j < i; j++)
{
va_arg (Parameter, const char *);
Font[j] = new Font (Parameter);
}
}
int main ();
{
...
Font * Font[2];
Fonts (2, "1981.fnt","font1.fnt");
...
}
E neste caso o arquivo é compilado, porém aparentemente apenas a primeira letra do nome do arquivo .fnt é passada e assim a fonte não é criada corretamente.
A segunda maneira que tentei foi:
void Fonts (int i, ...)
{
va_list Parameter;
va_start(Parameter, i);
for (int j = 0; j < i; j++)
{
va_arg (Parameter, const char * [] );
Font[j] = new Font (Parameter);
}
}
int main ();
{
...
Font * Font[2];
Fonts (2, "1981.fnt","font1.fnt");
...
}
Porém, esta versão não compilou e recebeu o seguinte aviso: invalid use of array with unspecified bounds
Como podem ver, estou tentando criar uma função que carregue várias fontes de uma vez, utilizando a função: Font (arquivo.fnt).
Caso você tenha uma sugestão de como resolver ou contornar o problema eu agradeço desde já!
Pergunta
Cantagalo
Olá Amigos...
Estou com a seguinte dúvida: Como criar uma função com um número indefinido de parâmetros, considerando que estes parametros são arrays?
Testei duas variantes, a primeira foi:
void Fonts (int i, ...)
{
va_list Parameter;
va_start(Parameter, i);
for (int j = 0; j < i; j++)
{
va_arg (Parameter, const char *);
Font[j] = new Font (Parameter);
}
}
int main ();
{
...
Font * Font[2];
Fonts (2, "1981.fnt","font1.fnt");
...
}
E neste caso o arquivo é compilado, porém aparentemente apenas a primeira letra do nome do arquivo .fnt é passada e assim a fonte não é criada corretamente.
A segunda maneira que tentei foi:
void Fonts (int i, ...)
{
va_list Parameter;
va_start(Parameter, i);
for (int j = 0; j < i; j++)
{
va_arg (Parameter, const char * [] );
Font[j] = new Font (Parameter);
}
}
int main ();
{
...
Font * Font[2];
Fonts (2, "1981.fnt","font1.fnt");
...
}
Porém, esta versão não compilou e recebeu o seguinte aviso: invalid use of array with unspecified bounds
Como podem ver, estou tentando criar uma função que carregue várias fontes de uma vez, utilizando a função: Font (arquivo.fnt).
Caso você tenha uma sugestão de como resolver ou contornar o problema eu agradeço desde já!
Valeu!
Cantagalo.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.