도와주세요 님들....ㅠ.ㅠ
핑크빛입술
스택에 문자열 gets로 입출력받는건데요....
질문 요약 :아무리해도 안되네요 포인터배열을 써보려햇는데
어찌해야되죠?? 이중배열로는 또 어떻게하구요........질문 내용 :
#include stdio.h
#include String.h
#define SIZE 10
void push(char *stack[], char arr );
char pop(char *stack[]);
void stack_overflow();
char stack_empty();
int top=-1;
char *stack[SIZE];
char arr[20];
int main(){
char a;
printf(입력:);
gets(arr);
push(stack,arr);printf(%c, pop(stack));
pritnf(\n);
return 0;
}
void push(char *stack[], char arr){
if(top=SIZE-1){
stack_overflow();
return;
}
strcpy(stack[++(top)],arr);
}
char pop(char *stack[]){
if(top==-1)
return stack_empty();
return(stack[(top)--];
}
void stack_overflow(){
printf(stack overflow \n);
}
char stack_empty(){
printf(stack empty \n);
return 0;
}
-
악당
포인터를 사용하실꺼면 linked-list에 char형 1차원 배열이면 해결.
배열만으로 해결 하려면 fixed된 일정 이상의 크기를 미리 선언해 주어야함
ex)stack[10][20]; // 앞의 10은 stack에 저장될 수 있는 자료의 수, 뒤의 20은 각 자료의 길이
이상.!