peek
메서드가있는 스택 데이터 구조를 만들었습니다. 컴파일러에서 warning: initialization makes pointer from integer without a cast
경고를 주려고 할 때 peek
을 호출 할 때 경고합니다. 여기에 내가 무엇을 가지고 :헤더 파일 링크
stack.h
:
struct stack stack;
stack_init(&stack);
및 전화 들여다 :
이struct stack_elem {
struct stack_elem *next;
};
struct stack {
struct stack_elem *top;
};
void stack_init(struct stack *stack);
int isEmpty(struct stack *);
struct stack_elem * peak(struct stack *);
그리고 그 구현을 다음과 같이 내 main.c
에서
void stack_init(struct stack *stack) {
stack->top = NULL;
}
int isEmpty(struct stack *stack) {
if (stack->top == NULL)
return 1;
else
return 0;
}
struct stack_elem * peek(struct stack *stack) {
if (isEmpty(stack) == 1)
return NULL;
else
return stack->top;
}
, 나는 스택을 정의 :
struct stack_elem * elem = peek(&stack);
이 줄은 경고를 표시합니다. 이상한 것은 여기서 stack.c
을 main.c
으로 가져오고 $ gcc main.c
으로 컴파일하는 것입니다. 이것은 절대적으로 오류가 없었습니다. 이제 stack.h
으로 가져 오기를 변경하고 경고를 던지는 $ gcc main.c stack.c
으로 컴파일 중입니다. 그것도 실행 segfaults (그것은 미리하지 않았다).
모든 소스 코드를 제공 할 수 있습니까? – laifjei
왜 선언문에 다음과 같은 문장이 포함되어 있는지요 : node-> value.character = * p; '? – Aftnix
@Aftnix 죄송합니다. 나는 이맥스 분할 화면에서 복사하고 그것을 실수로 복사했습니다. – darksky