c언어 문자열 변경 실행후 오류
여름
질문 제목 : c언어 문자열 변경c언어 문자열 변경질문 내용 :
#includeconio.h
#includestdio.h
#includestdlib.h
#define max 10
char *t, *p, *top, *bot;
void push(char);
void pop();
void display();
void main()
{
int i = 0;
int get;
char str[10];
char data;
for(;;)
{
printf(\n 메뉴 선택\n\n 1. push \n 2. pop);
printf(\n 3. display\n 4. quit \n\n 번호를 입력하시오: );
scanf(%d, &get);
fflush(stdin);
switch(get)
{
case 1:
printf(\n 문자데이터를 입력하시오 :);
scanf(%s, &data);
push(data);
break;
case 2:
pop();
break;
case 3 :
if(p == null)
break;
display();
break;
case 4:
exit(0);
}
}
}void push(char i)
{
if(p == null)
{
p=(char *)malloc(max*(sizeof(char)));
bot = p;
top = max + p - 1;
printf(bottom의 포인터 : % p \n, bot);
printf(top의 포인터 : % p \n, top);
}
if(p == top)
{
printf(\n stack full);
return;
}
*p = i;
p++;
}void pop()
{
if(p == null)
{
printf(\n stack empty);
return;
}
p--;
printf(\n\n stack pointer : %p pop data : %s, p, *p);
if(p = bot)
p = null;
return;
}void display()
{
t = p-1;
while(t = bot)
{
printf(\n stack index : %d stack data : %s, t, *t);
t--;
}
return ;
}dkdsf.exe의 0x628a984f (msvcr90d.dll)에 처리되지 않은 예외가 있습니다. 0xc0000005: 0x00000061 위치를 읽는 동안 액세스 위반이 발생했습니다.
문자에서 문자열로 변경하였을때 실행은 되는데 이런문구가 뜹니다 ㅠㅠ
책에는 오류에관해선 나와있지 않구...검색도 제대로된 설명은 없어서요 ㅠㅠ
1.번은 실행되는데 2번부터 저오류가 납니다... 그래서 2번부터 먼가 잘못됐나 싶어서 봤는데...
오류가 날만한건 저는 못찾아서요 ㅠ 오늘 질문을 너무 많이 해서 ㅠㅠ 민폐지만 궁금합니다...