array stack 구현 질문입니다

stack_array.c 코드입니다.

#include "stack_array.h"

// --------------------------------------------------------------------
// 변경 금지
// --------------------------------------------------------------------

// 스택 초기화
void stack_init_as(Array_Stack* stack)
{
    stack->top = 0;
}

// --------------------------------------------------------------------


/*
* 구현시 유의사항
* 1. 함수명과 매개변수는 수정하시지 마세요.
* 2. 반환값 정확하게 구현해주세요. (bool, int)
*/

// --------------------------------------------------------------------
// 기초 스택 구현 - 모두 구현 B
// --------------------------------------------------------------------

// 스택이 비어있는지 확인, true/false 반환
bool is_empty_as(Array_Stack* stack)
{
    
	if(stack.top == 0){
		return true;
}
	return false;
}
/*
* 스택이 가득찼는지 확인, true/false 반환
* 스택의 최대 원소의 개수는 MAX_STACK_SIZE
*/
bool is_full_as(Array_Stack* stack)
{
    if(Array_Stack.top = Array_Stack.array[MAX_STACK_SIZE]){
        return true;
    }
    return false;
}

// 스택에 원소 삽입
void push_as(Array_Stack* stack, int data)
{
    if(!is_full_as()){
        Array_Stack.top++;
        Array_Stack* stack[Array_Stack.top] = data;
    }
}

// 스택의 최상위 원소(top)를 삭제하고 반환
int pop_as(Array_Stack* stack)
{

    if(!is_empty_as()){
        Array_Stack* stack temp = Array_stack* stack[Array_Stack.top];
        Array_Stack.top--;
        return temp;
    }

}


// --------------------------------------------------------------------
// 심화 스택 구현
// --------------------------------------------------------------------

// 현재 스택 원소 개수 반환
int get_stack_size_as(Array_Stack* stack)
{
    if(!is_empty_as()){
        return Array_Stack.top;
    }
    else{
        printf("0");
    }
}

// 스택의 최상위 원소(top) 값 반환
int get_top_as(Array_Stack* stack)
{
    if(!is_empty_as()){
        return Array_Stack* stack[Array_Stack.top];
    }

}


/*
* 스택의 최상위 원소부터 순서대로 출력 (pop X)
* top ... bottom 
* ex) 5 10 12 4 3
*/
void print_stack_as(Array_Stack* stack)
{

    if(!is_empty_as()){
        for(i = Array_Stack.top; i >= 0; i--){
            printf("%c", Array_Stack* stack[i]);
        }
        printf("\n");
    }
}

stack_array.h입니다.
`#include <stdio.h>
#include <stdbool.h>

#define MAX_STACK_SIZE 5

typedef struct Array_Stack {
int array[MAX_STACK_SIZE];
int top;
}Array_Stack;

void stack_init_as(Array_Stack* stack);

bool is_empty_as(Array_Stack* stack);
bool is_full_as(Array_Stack* stack);
void push_as(Array_Stack* stack, int data);
int pop_as(Array_Stack* stack);

int get_stack_size_as(Array_Stack* stack);
int get_top_as(Array_Stack* stack);
void print_stack_as(Array_Stack* stack);`

Array_stack.top 이라고 구조체에서 가져왔는데도 인식이 안되네요. 뭐가 문제인지 모르겠습니다. 딴 것도 잘못된 거 많을텐데 top부분이 안되는 게 가장 먼저인거 같아 질문드립니다.

stack.top

요렇게 쓰시면 안 되고

stack->top

요렇게 접근하셔야 됩니다.

매개변수에서 Array_Stack* stack로 받아오셨기 때문에요.

감사합니다!