por alguna razón, no puedo conseguir este trabajo:cómo usar una cadena en va_start?
void examplefunctionname(string str, ...){
...
va_start(ap, str.c_str());
ni puedo obtener este trabajo:
void examplefunctionname(string str, ...){
...
int len = str.length();
char *strlol = new char[len+1];
for(int i = 0; i < len; i++){
strlol[i] = str[i];
}
strlol[len] = 0;
va_start(ap, strlol);
pero esto:
void examplefunctionname(const char *str, ...){
...
va_start(ap, str);
es posible que alguien me muestran cómo i puede usar una cadena en lugar de const char *
allí?
su salida números aleatorios cuando llamo examplefunctionname("%d %d %d", 1337, 1337, 1337)
¿Por qué no estás usando 'va_start (ap, str)' en tus ejemplos donde la función toma 'string'? Se supone que debes usar el nombre del parámetro en la macro 'va_start', no una expresión arbitraria. –
oh, maldición, pensé que se lee una cadena ahí, por lo que se necesita una dirección para la variable ... ¿y la usa para conocer la última variable y luego pasar al siguiente? ah ... lo veo ahora – Newbie