Я создал очень простую программу связанных списков в С.Использование * вместо -> оператор с
#include<stdio.h>
#include<stdlib.h>
int main(){
struct Int{
int num;
struct Int *ptr;
};
typedef struct Int NODE;
NODE *start;
start = (NODE *) malloc(sizeof(NODE));
(*start).num = 100;
(*start).ptr = (NODE *) malloc(sizeof(NODE));
(*start).(*ptr).num = 123;
(*start).(*ptr).ptr = NULL;
}
Когда я заменить последние две строки, как: -
start -> ptr -> num = 123;
start -> ptr -> ptr = NULL;
Погрешность решена.
Вопрос заключается в том, что, почему я не могу использовать (* start).
вместо start ->
.Согласно этому ответу What does this mean "->"? оба одинаковы.
Потому что точка должна сопровождаться * именем члена *. – PcAF
Было бы полезно включить в вопрос, что такое «ошибка». –
** Какая ** ошибка, у вас не было ошибки компилятора в коде. –