#include <stdio.h>
void getnum(int *p, int *ptrial);
int main()
{
int i, j, c, trial, trial2, num;
int *ptrial = &trial;
int *pnum = #
for (trial = 0; (c = getchar()) != EOF&&c != '\n';)
if (c >= '0'&&c <= '9')
trial = trial * 10 + c - '0';
trial2 = trial;
for (i = 0; trial > 0;)
getnum(pnum + i++,ptrial);
for (j = 0; i > 0;--i)
printf("%d\n", *(pnum + j++));
return 0;
}
void getnum(int *p, int *ptrial)
{
int i, c, output, sign;
sign = 1;
output = 0;
for (i = 0; (c = getchar()) != EOF&&c != '\n'; ++i)
{
if (i == 0 && c == '-')
{
sign = -1;
--i;
}
else if (i == 0 && c == '+')
--i;
else if (c >= '0'&&c <= '9')
output = output * 10 + c - '0';
}
output = output*sign;
if (i != 0)
{
*p = output;
--*ptrial;
}
}
pnum에서부터 오른쪽 공간들에 getnum함수로 읽은 숫자들 저장하고 싶은데
메모리 창 보니깐 pnum + i++이 오른쪽 메모리 공간 하나씩 점거해 가면서
변수들에 저장된 값이 다 사라지고 프로그램 터짐
난 그냥 ptrial에 저장될 횟수만큼만 읽어서 저장하고 싶은데 (맨 처음 for문에서 읽은거)
ptrial 횟수는 문제에서 정해주는거라 상한선을 안 두고 싶어서 포인터를 쓴거거든
이거 그냥 array 존나큰걸로 하나 만들어서 풀어야 됨?
아니면 포인터 쓸 때 쓰기전에 alloc인가 먼저 쓰고 써야 되는 거였나
아 모바일 가독성 쓰레기네 ㅅㅂ
모바일 가독성 ㅎㅌㅊ - dc App
우와 개꼬아놨네.. 첨엔 저게 왜 무한루프가 아닌지 안참 봄;
ㅜㅜ
다른건 모르겠는데 main에서 getnum 호출할 때 ptrial로 하지 마시고 그냥 &trial로 해주세요. 보자마자 걍 무한루프 땜에 터지는줄 알았음
딱 한글자 차이가...
ㄳ 포인터 막 배우는중이라 표기법을 잘 몰라여