Я работаю над этой проблемой в течение недели, я искал много предупреждающих решений «несовместимого типа указателя», но я все еще смущен тем, как я могу исправить эту ошибку компиляции.Предупреждение: Несовместимый указатель Тип
я получаю высказывание об ошибке:
char_stack_interface.c: In function ‘pop_char’:
char_stack_interface.c:32: warning: passing argument 2 of ‘pop’ from incompatible pointer type
char_stack_interface.c: In function ‘top_char’:
char_stack_interface.c:43: warning: passing argument 2 of ‘top’ from incompatible pointer type
Это мой код:
char_stack_interface.h:
#ifndef _CHAR_STACK_INTERFACE_H
#define _CHAR_STACK_INTERFACE_H
#include "stack.h"
extern status push_char(stack *p_s, char c);
extern status pop_char (stack *p_s, char *p_c);
extern status top_char (stack *p_s, char *p_c);
#endif
stack.h:
#ifndef _STACK_H
#define _STACK_H
#include "globals.h"
ABSTRACT_TYPE(stack);
extern status init_stack (stack *p_S);
extern bool empty_stack(stack *p_S);
extern status push (stack *p_S , generic_ptr data);
extern status pop (stack *p_S , generic_ptr *p_data);
extern status top (stack *p_S , generic_ptr *p_data);
#endif
char_stack_interface. c:
#include <stdio.h>
#include <stdlib.h>
#include "char_stack_interface.h"
#include "stack.h"
status push_char(stack *p_s, char c)
{
char *p_c = NULL;
p_c = (char *) malloc(sizeof(char));
if (p_c == NULL)
return ERROR;
*p_c = c;
if (push(p_s, p_c) == ERROR) {
free(p_c);
return ERROR;
}
return OK;
}
status pop_char (stack *p_s, char *p_c)
{
char *p_data;
if (pop(p_s, p_data) == ERROR)
return ERROR;
*p_c = *p_data;
free(p_data);
return OK;
}
status top_char (stack *p_s, char *p_c)
{
char *p_data;
if (top(p_s, &p_data) == ERROR)
return ERROR;
*p_c = *p_data;
return OK;
}
Вы должны добавить дополнительную информацию. Лучше вставьте заголовки (или, по крайней мере, основные определения типов оттуда), а также какую строку вы получите предупреждение. – chetan
Я просто понял, как манекен, что я не поместил сообщение об ошибке там, извините, что я только что обновил его :) – Cka91405
@ Cka91405: Как выглядят прототипы 'pop' и' top'? – netcoder