calloc 사용시 액세스 위반 질문드립니다.

kibaejjang의 이미지

result = (int**)calloc(S, sizeof(int*));
for(i=0; i result[i] = (int*)calloc(3, sizeof(int));

이런 식으로 동적할당을 해주고,
2행 3열의 결과값을 result[i][j]에 기입해 줬습니다.
그런데 S가 8을 넘어가는 순간부터 액세스 위반 오류가 납니다..

이것을 해결하려면 어떻게 해야 하죠?