On Wed, 17 Oct 2007 09:24:50 -0000, "ia****@gmail.com"
<ia****@gmail.comwrote:
>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