aus irgendeinem Grund kann ich nicht diese Arbeit bekommen:Wie benutzt man String in va_start?
void examplefunctionname(string str, ...){
...
va_start(ap, str.c_str());
noch bekomme ich diese Arbeit:
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);
aber dies tut:
void examplefunctionname(const char *str, ...){
...
va_start(ap, str);
mir jemand zeigen könnte, wie ich kann String statt const char *
dort verwenden?
seine Ausgabe von Zufallszahlen, wenn ich examplefunctionname("%d %d %d", 1337, 1337, 1337)
nennen
Warum verwenden Sie nicht 'va_start (ap, str)' in Ihren Beispielen, wo die Funktion eine 'Zeichenfolge' nimmt? Sie sollten den Namen des Parameters im Makro 'va_start' verwenden, nicht einen beliebigen Ausdruck. –
oh verdammt, ich dachte, es liest eine Zeichenfolge dort, so dass es eine Adresse zu der Variablen ... und das verwendet, um die letzte Variable und dann Schleife zum nächsten? ah .. ich sehe es jetzt – Newbie