파라미터는 char *error이고 인수는 "머시기" 이건데 인수가 char여서 안된다고오류
조회수 1046회
뜨는데 왜이러죠 책에 있는 거 고대로 한건데 ,,, 왜나만 안되냐고옥
include
include
inline void error(char *message){ printf("%s\n",message); exit(1); }
const int MAX_STACK_SIZE=20; class ArrayStack { int top; int data[MAX_STACK_SIZE]; public: ArrayStack(){top=-1;} ~ArrayStack(){} bool isEmpty(){return top==-1;} bool isFull(){return top==MAX_STACK_SIZE-1;}
void push(int e){
if(isFull()) error ("스택포화에러");
data[++top]=e; }
int pop(){ if(isEmpty()) error ("스택공백에러"); return data[top--];
} int peek(){ if(isEmpty()) error ("스택공백에러"); return data[top]; } void display(){ printf("[스택 항목의 수 = %2d]==>", top+1); for(int i=0;i<=top;i++) printf("<%2d>",data[i]); printf("\n"); } };
1 답변
-
inline void error(char *message){ printf("%s\n",message); exit(1); }
위의 코드를 아래처럼 바꾸시면 됩니다.
inline void error(const char *message){ printf("%s\n",message); exit(1); }
error("스택포화에러")
처럼 문자열 리터럴을 함수의 인자로 넣어 사용할 경우, 문자열 리터럴은const char*
로 인식하는데 함수의 매개변수는char*
라서 매칭이 안되어 발생하는 에러입니다.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력