Author: Stan Eisenstat
Subject: Re: [Cs223] Compiler Error
Date: Thursday, 19 Mar 2020, 11:38:02
> Message Posted By: Unknown > > I am getting the following error when I try to make my Deque.c: > > Deque.c: In function `addD': > Deque.c:125:16: error: `*d' is a pointer; did you mean to use `->'? > 125 | stackPush(d->tailStack, *s); > | ^~ > > It seems that gcc is trying to suggest using '->' when it's already in > use? I will assume that d is an argument to one of the Deque functions so that d is a Deque*; i.e., d is a pointer to a Deque variable. [Had you sent mail to me rather than posting to the newsgroup, I could look at your code to verify this.] d->FIELD is equivalent to (*d).FIELD. Since d is a Deque*, *d is a Deque (i.e., a pointer to a struct deque), not a struct deque, and thus does not have any fields, which generates the error message. But (*d)->FIELD is equivalent to (**d).FIELD. Since **d is a struct deque, there would be no error message. --Stan-PREV INDEX NEXT