Реализация стека в C программировании - PullRequest
0 голосов
/ 26 мая 2020

Я хотел реализовать стек с использованием массива, но компилятор продолжает показывать мне ошибку в этой строке:

(f->(arr+(++count)))=value;

Ошибка:

expected identifier before '(' token

Могу ли я узнать что я сделал не так?

вот код:

#define N 1000
typedef struct stack
{
    int arr[N];
    int tail;
}stack;
stack* insert(stack* f,int value)
{
    if(f->tail>N-1)
    {
        printf("Error: Stack OverFlow");
        exit(1);
    }
    int count=f->tail;
    (f->(arr+(++count)))=value; //Line that contains an error
    f->tail=count;
    return f;
}

1 Ответ

0 голосов
/ 26 мая 2020

Кажется, вы имеете в виду

int count = f->tail;
*( f->arr + count++ ) = value;

при условии, что изначально элемент данных tail равен 0.

В противном случае, если, например, изначально элемент данных tail равен равно -1, то вам нужно изменить условие в операторе if следующим образом:

if ( f->tail > N-2 )

, а затем

int count = f->tail;
*( f->arr + ++count ) = value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...