Click here to Skip to main content
15,921,793 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralMessage Closed Pin
28-Mar-22 14:44
Member 1496877128-Mar-22 14:44 
GeneralMessage Closed Pin
29-Mar-22 6:05
Member 1496877129-Mar-22 6:05 
GeneralRe: how do I verify - "all the ducks in the row "? Pin
k505429-Mar-22 6:55
mvek505429-Mar-22 6:55 
QuestionHelp with calculating percentage in C Pin
ForNow20-Mar-22 5:37
ForNow20-Mar-22 5:37 
AnswerRe: Help with calculating percentage in C Pin
k505420-Mar-22 5:54
mvek505420-Mar-22 5:54 
GeneralRe: Help with calculating percentage in C Pin
ForNow20-Mar-22 6:47
ForNow20-Mar-22 6:47 
GeneralRe: Help with calculating percentage in C Pin
Calin Negru20-Mar-22 8:41
Calin Negru20-Mar-22 8:41 
JokeRe: Help with calculating percentage in C Pin
RedDk21-Mar-22 7:16
RedDk21-Mar-22 7:16 
AnswerRe: Help with calculating percentage in C Pin
Victor Nijegorodov20-Mar-22 7:42
Victor Nijegorodov20-Mar-22 7:42 
GeneralRe: Help with calculating percentage in C Pin
ForNow20-Mar-22 9:02
ForNow20-Mar-22 9:02 
QuestionMessage Closed Pin
18-Mar-22 15:23
Member 1496877118-Mar-22 15:23 
AnswerRe: How to pass pointers and process them using ellipsis ? Pin
Richard MacCutchan18-Mar-22 23:08
mveRichard MacCutchan18-Mar-22 23:08 
GeneralMessage Closed Pin
19-Mar-22 4:06
Member 1496877119-Mar-22 4:06 
GeneralRe: How to pass pointers and process them using ellipsis ? Pin
k505419-Mar-22 5:01
mvek505419-Mar-22 5:01 
GeneralMessage Closed Pin
19-Mar-22 8:44
Member 1496877119-Mar-22 8:44 
GeneralRe: How to pass pointers and process them using ellipsis ? Pin
k505419-Mar-22 12:00
mvek505419-Mar-22 12:00 
It's pretty straight forward, really. When you use the va_arg macro, the second argument is the received objects type. So, to receive a pointer to a type, you use va_arg(args, Obj*) where Obj is some object type - e.g. class, int, double, struct, etc. Here's a short working example:
C++
#include <cstdarg>
#include <iostream>

struct S {
    int data;
    S(int d) : data(d) {}
};

void f(size_t n, ...)
{
    va_list args;
    va_start(args, n);
    for(size_t i = 0; i < n; ++i) {
        S* ptr = va_arg(args, S*);
        std::cout << ptr->data << '\n';
    }
}

int main()
{
    S item1(1); 
    S item2(2);
    S item3(3); 

    f(3, &item1, &item2, &item3);
}
Keep Calm and Carry On

GeneralRe: How to pass pointers and process them using ellipsis ? Pin
Richard MacCutchan19-Mar-22 6:11
mveRichard MacCutchan19-Mar-22 6:11 
Questionworking with pointers Pin
Calin Negru17-Mar-22 21:48
Calin Negru17-Mar-22 21:48 
AnswerRe: working with pointers Pin
Victor Nijegorodov17-Mar-22 23:16
Victor Nijegorodov17-Mar-22 23:16 
GeneralRe: working with pointers Pin
Calin Negru18-Mar-22 0:12
Calin Negru18-Mar-22 0:12 
GeneralRe: working with pointers Pin
Victor Nijegorodov18-Mar-22 1:39
Victor Nijegorodov18-Mar-22 1:39 
GeneralRe: working with pointers Pin
Calin Negru18-Mar-22 10:20
Calin Negru18-Mar-22 10:20 
Generalgoing a bit further: working with pointers Pin
Calin Negru20-Mar-22 7:47
Calin Negru20-Mar-22 7:47 
AnswerRe: working with pointers Pin
Mircea Neacsu18-Mar-22 10:19
Mircea Neacsu18-Mar-22 10:19 
QuestionRe: working with pointers Pin
David Crow21-Mar-22 3:16
David Crow21-Mar-22 3:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.