Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

0 views
Skip to first unread message

ian...@gmail.com

unread,
Oct 17, 2007, 5:24:50 AM10/17/07
to
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

Nick Keighley

unread,
Oct 17, 2007, 5:37:10 AM10/17/07
to


this looks like homework to me...


--
Nick Keighley

Mark Bluemel

unread,
Oct 17, 2007, 6:19:59 AM10/17/07
to
Nick Keighley wrote:
> On 17 Oct, 10:24, "ian...@gmail.com" <ian...@gmail.com> wrote:
>
>> I have a struct defined thus:
>>
>> typedef struct myStruct
>> {
>> int j;
>>
>> } myStruct;
>>
>> I saw somewhere calls with the following syntax:
>> f1(&*a)

[To the OP] Really? Where? What do you think it will do?

> this looks like homework to me...

It looks like bovine excrement to me.

vipvipv...@gmail.com

unread,
Oct 17, 2007, 6:27:19 AM10/17/07
to
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]'

Barry Schwarz

unread,
Oct 19, 2007, 12:58:29 PM10/19/07
to
On Wed, 17 Oct 2007 09:24:50 -0000, "ian...@gmail.com"
<ian...@gmail.com> wrote:

>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

0 new messages