2016-10-17 8 views
0
1. struct node { 
2.  char data; 
3.  struct node* nxtPtr; 
4. } 
5. 
6. typedef struct node Node; 
7. 
8. Node* front = NULL; 
9. Node* end = NULL; 
10. 
11. void enqueue(char userData) 
12. { 
13.  Node* temp = malloc(sizeof(Node)); 
14.  temp->data = userData; 
15.  temp->nxtPtr = ??? 
16. } 

Я сохранил код как минимум, чтобы избежать путаницы. В конце концов конец переменной будет указывать на структуру узла, содержащую элемент данных и элемент указателя узла. В строке 15 я хотел бы удалить ссылку на конец, чтобы получить доступ к значению, хранящемуся в nxtPtr, из текущего конечного узла. Однако следующая строкаСтруктура очереди в C. Доступ к указателю в структуре путем переопределения указателя на эту структуру

temp->nxtPtr = *end->nxtPtr; 

дает следующую ошибку Gcc

incompatible types when assigning to type ‘struct node *’ from type ‘struct node’ 

ответ

1

The A->B означает "B поле из struct что A указывает", так что вам не нужно *.

+0

Спасибо, я также понял, что сделал неправильную оценку структуры очереди. Я попрошу, чтобы вопрос был удален. Спасибо за вашу помощь –

 Смежные вопросы

  • Нет связанных вопросов^_^