c언어/ 2차원 배열 함수에서 사용/ 코드 실행중 예외 발생을 해결하고 싶습니다.
조회수 570회
#include<stdio.h>
void calc(int(*pjumsu[3]), int* ptotal);
main()
{
int jumsu[100][3];
int total[3] = { 0, };
int(*pjumsu)[3];
pjumsu = jumsu;
calc(pjumsu, total);
printf("국어 총점: %d\n", total[0]);
printf("영어 총점: %d\n", total[1]);
printf("수학 총점: %d\n", total[2]);
}
void calc(int(*pjumsu[3]), int* ptotal)
{
int i;
for (i = 0; i < 100; i++)
{
pjumsu[i][0] = 91; // 여기서 자꾸 예외 발생이 뜨는데 어디서 문제가 생긴건가요?
pjumsu[i][1] = 90;
pjumsu[i][2] = 95;
}
for (i = 0; i < 100; i++)
{
ptotal[0] += pjumsu[i][0];
ptotal[1] += pjumsu[i][1];
ptotal[2] += pjumsu[i][2];
}
}
2차원 배열을 함수에서 사용하기에 관한 예제를 풀던 중, 예제와 똑같이 입력하였지만 예외가 발생헤, 예외 발생 이유가 뭔지 알고싶고, 이를 해결하고싶습니다.
#include<stdio.h>
void calc(int(*pjumsu[3]), int* ptotal);
main()
{
int jumsu[100][3];
int total[3] = { 0, };
calc(jumsu, total);
printf("국어 총점: %d\n", total[0]);
printf("영어 총점: %d\n", total[1]);
printf("수학 총점: %d\n", total[2]);
}
void calc(int(*pjumsu[3]), int* ptotal)
{
int i;
for (i = 0; i < 100; i++)
{
pjumsu[i][0] = 91;
pjumsu[i][1] = 90;
pjumsu[i][2] = 95;
}
for (i = 0; i < 100; i++)
{
ptotal[0] += pjumsu[i][0];
ptotal[1] += pjumsu[i][1];
ptotal[2] += pjumsu[i][2];
}
}
이후 이렇게도 수정해 보았지만 코드 실행기에서는 signal: segmentation fault (core dumped), visual stdio에서는 예외가 떴습니다.
댓글 입력