for문에서 함수 호출하는 횟수에 제한이 있는지요?

anyjava의 이미지

아래 프로그램을
# cmd 127 하면 실행이되어 "End"문자열이 출력되지만
# cmd 128 하면 프로그램이 끝나지 않고 계속 떠 있습니다.

스택의 크기와 관련 있는가 해서
# ulimit -s 16384로 늘려보기도 했는데

어떻게 하면 127보다 큰수로 for문을 돌려도 결과가 나올지요?
고수님들의 한마디를 바랍니다.
------------------------------------------------------------------------
int
main (int argc, char *argv[])
{
char i;

if (argc < 2)
{
printf ("Usage: cmd num\n");
exit (-1);
}

for (i = 1; i < atoi (argv[1]); i++)
{
insertNode ();
}

printf ("End\n");

return 0;
}

void
insertNode ()
{
return;
}

bugiii의 이미지

변수 i 의 타입이 무엇인가요? 일반적으로 그 타입의 최대값은 얼마일까요? atoi 가 리턴하는 타입은 무엇일까요? 만약 i 타입이 허용하는 최대값보다 큰수가 i 에 대입되면 어떻게 될까요? 그리고, for 루프의 비교문에 atoi 를 매번할 이유가 있을까요?

타이핑을 잘못하신 것 같습니다.

anyjava의 이미지

char i로 선언해 버려서 이런 문제가 발생했군요.

이런 것을 스택을 뒤지고
strace를 하고 했습니다.

감사합니다.

커널을 정복 할때 까지...