Link to home
Start Free TrialLog in
Avatar of nagaharikola
nagaharikolaFlag for Afghanistan

asked on

return Multiple value

How can we return multiple values using pointers
Avatar of HalfAsleep
HalfAsleep


Integer pointers are declared as int * value.

You will have to construct a function which takes your normal parameters, as well as return pointer parameters as input.

As you calculate your return values inside the function, you assign the value to the pointers from the function parameters to return them to the caller.  The caller must allocate their data and pass pointers into your function in addition to any normal parameters needed.

Forgive me for not spelling it out, but the question sounds a bit academic in nature.
Avatar of evilrix
Depends what you mean by "multiple values". Some clarification of what you are trying to achieve would help.
Avatar of nagaharikola

ASKER

how to return multiple values from a function
as u know we can do this with  structures and pointers.
i know about returning structures but i don't know how to return multiple values with pointers
please give code snippet . i am a beginner
ASKER CERTIFIED SOLUTION
Avatar of Infinity08
Infinity08
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
yes
So, that's your answer then :)
with out pointer to a structure can we return multiple values.
>>with out pointer to a structure can we return multiple values.
Yes. But you need to pass those many pointers as per your requirements as parameters to the function.
But it's better to use pointer to structure by which you need to pass only one(or less no. of) pointers to structure.
suppose you need a function to return sum,difference,multiplication and division of two numbers, then
your function prototype will look as follows.

void sum_diff_mul_div(int a, int b, int* sum, int* diff, int* mul, int* div);

or
struct result{
int sum,
int diff,
int mul,
int div};

void sum_diff_mul_div(int a, int b, struct result* res);

Now you decide between two versions which one is better?