실행이 되고 값도 제대로 출력되는데 마지막에 debug assertion failed가 뜹니다
Elfin
질문 제목 : 실행이 되고값도 제대로 출력되는데 마지막에debug assertion failed가 뜹니다행렬 A와 B를 동적할당으로받고
A와 B의 곱 C를 동적할당 한다음 계산해서출력하는 내용입니다.
디버깅을 해보니C출력이 끝날때
Windows가 prob1.exe에서 중단점을 트리거했습니다. 면서 창이 뜹니다
어디가 문제인가요?
C언어 초보이니 쉽게 설명해 주시면 감사하겠습니다(__)...
질문 내용 :
#include stdio.h
#include stdlib.h
int main()
{
int l,m,n;
printf(행렬의 크기 l, m, n을 입력하시오:);
scanf(%d%d%d,&l,&m,&n);
//A 동적할당
int **pA=(int**)malloc(sizeof(int*)*l);
for(int i=0; il; ++i)
{
pA[i]=(int*)malloc(sizeof(int)*m);
}
//A 입력
printf(A행렬의 %d개의 원소를 입력하시오:,l*m);
for(int i=0; il; ++i)
{
for(int j=0; jm; ++j)
{
scanf(%d,&pA[i][j]);
}
}
//B 동적할당
int **pB=(int**)malloc(sizeof(int*)*m);
for(int i=0; im; ++i)
{
pB[i]=(int*)malloc(sizeof(int)*n);
}
//B 입력
printf(B행렬의 %d개의 원소를 입력하시오:,m*n);
for(int i=0; im; ++i)
{
for(int j=0; jn; ++j)
{
scanf(%d,&pB[i][j]);
}
}
//C 동적할당
int **pC=(int**)malloc(sizeof(int*)*l);
for(int i=0; il; ++i)
{
pC[i]=(int*)malloc(sizeof(int)*n);
}
for(int i=0; il; ++i)
{
for(int j=0; jn; ++j)
pC[i][j]=0;
}
//A와 B의 곱 C 계산
for(int i=0; il; ++i)
{
for(int j=0; jn; ++j)
{
for(int k=0; km; ++k)
{
pC[i][j]=pC[i][j]+pA[i][k]*pB[k][j];
}
}
}
//A 출력
printf(A =\n);
for(int i=0; il; ++i)
{
printf(|);
for(int j=0; jm; ++j)
{
printf( %2d ,pA[i][j]);
}
printf(|\n);
}
//B 출력
printf(B =\n);
for(int i=0; im; ++i)
{
printf(|);
for(int j=0; jn; ++j)
{
printf( %2d ,pB[i][j]);
}
printf(|\n);
}
//C 출력
printf(A * B=\n);
for(int i=0; il; ++i)
{
printf(|);
for(int j=0; jn; ++j)
{
printf( %2d ,pC[i][j]);
}
printf(|\n);
}
//A 해제
for(int i=0; il; ++l)
{
free(pA[i]);
}
//B 해제
for(int i=0; il; ++m)
{
free(pB[i]);
}
//C 해제
for(int i=0; il; ++l)
{
free(pC[i]);
}
return 0;
}