What should be the prototype of this function ? (noonie)

I

ianbrn

Hello,
I have a struct defined thus:

typedef struct myStruct
{
int j;
} myStruct;

I saw somewhere calls with the following syntax:
f1(&*a)

What should be the protype of f1 so that it will be correct and
so that compilation will succeed ?

I am talking about two cases:
In the first, we have the following definition:
myStruct a;

in the second, we have
myStruct* a;

Is it possible with both case to have a definition of f1() so that
f1(&*a) will be correct and pass compilation ?

Any ideas?

Ian
 
N

Nick Keighley

I have a struct defined thus:

typedef struct myStruct
{
int j;

} myStruct;

I saw somewhere calls with the following syntax:
f1(&*a)

What should be the protype of f1 so that it will be correct and
so that compilation will succeed ?

I am talking about two cases:
In the first, we have the following definition:
myStruct a;

in the second, we have
myStruct* a;

Is it possible with both case to have a definition of f1() so that
f1(&*a) will be correct and pass compilation ?

Any ideas?


this looks like homework to me...
 
V

vipvipvipvip.ru

struct name { /* ... */ };

ret f(struct name *);

struct name obj1, *obj2, obj3[1], **obj4;
f(&obj);
f(obj2);
f(obj3);
f(*obj4);

Etc.

`&*p' == `&p[0]'
 
B

Barry Schwarz

Hello,
I have a struct defined thus:

typedef struct myStruct
{
int j;
} myStruct;

I saw somewhere calls with the following syntax:
f1(&*a)

It would help if we new what a was.

What do you think the effect of the combined & and * operators is? For
extra points, would it make a difference if the operators were
reversed? What is the only possible type the expression &*a (or *&a)
can have (on those occasions when it is a legal expression)?
What should be the protype of f1 so that it will be correct and
so that compilation will succeed ?

The prototype is not the problem.
I am talking about two cases:
In the first, we have the following definition:
myStruct a;

What happens when you apply the * operator to a struct?
in the second, we have
myStruct* a;

Is it possible with both case to have a definition of f1() so that
f1(&*a) will be correct and pass compilation ?

While passing an incompatible type to a function possibly could be
"corrected" by changing the prototype, what makes you think a
prototype can magically correct a syntax error?

Again, what happens when you apply the * operator to a struct?
Any ideas?

Yes. Make a note of the author who wrote the call to f1. Then make
sure you never again take anything written by him seriously.


Remove del for email
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,187
Members
46,731
Latest member
MarcyGipso

Latest Threads

Top