#include <stdio.h>
void getnum(int *p, int *ptrial);
int main()
{
int i, j, c, trial, trial2, num;
int *ptrial = &trial;
int *pnum = &num;
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인가 먼저 쓰고 써야 되는 거였나