메모리 동적할당 malloc 질문입니다^^ 고수분들 살펴주세요 ㅎ
파라나
질문 제목 : 메모리 동적할당 malloc 함수 부분gauss-jordan 코딩을 이 사이트에서 빌려서 텍스트 파일을 읽어서 결과값을 내는건데
행렬이 2800 by 2800 행렬이라 읽지를 못해서 메모리 동적할당을 하려고 하는데 책을 읽어봐도 검색해도
한계가 여기까진데 한번만 봐주세요^^
1.txt 는 2800x2800 행렬이구, 2.txt는 2800x1 행렬입니다. 꼭 좀 도와주세요 고수분들^^질문 내용 : #include stdio.h
#include math.h
#includestdlib.h
#define maxrow 2800
void main()
{
int i,j,k;
double *b1, **a1;
double n1,n2,n3;
double p,d;
double a[maxrow][maxrow];
double b[maxrow];
double c[maxrow][maxrow+1];
/*..메모리 동적할당..*/
b1 = (double*)malloc(sizeof(double)*(maxrow));
a1 = (double**)malloc(sizeof(double*)*(maxrow));
for (i=0; imaxrow; i++)
a1[i]=(double*)malloc(sizeof(double)*(maxrow));
file *fp=fopen(c:\\data\\1.txt, rt);
for (i=0; imaxrow; ++i)
{
for (j=0; jmaxrow; ++j)
fscanf(fp, %lf %lf %lf, &n1, &n2, &a[i][j]);
}
fclose(fp);
file *fp1=fopen(c:\\data\\2.txt, rt);
for (i=0; imaxrow; ++i)
fscanf(fp1, %lf %lf, &n3, &b[i]);
fclose(fp1);
for (i=0; imaxrow; ++i)
{
for (j=0; jmaxrow; ++j)
{
c[i][j]=a[i][j];
}
}
for (i=0; imaxrow; ++i)
{
c[i][maxrow]=b[i];
}
/*..요긴사이트에서 빌린 g-j법..*/
for (k=0;kmaxrow;k++)
{
p=c[k][k]; /* 피벗 계수 */
for (j=k;jmaxrow+1;j++) /* 피벗행을 p로 나눈다. */
c[k][j]=c[k][j]/p;
for (i=0;imaxrow;i++)
{ /* 피벗열 소거 */
if (i!=k)
{
d=c[i][k];
for (j=k;jmaxrow+1;j++) /* ① */
c[i][j]=c[i][j]-d*c[k][j];
}
}
}
for (k=0;kmaxrow;k++)
printf(x%d=%f\n,k+1,c[k][maxrow]);
file *fp3=fopen(c:\\data\\3.txt, wt);
for (i=0; imaxrow; ++i)
fprintf(fp3, %f\t\n, c[i][maxrow]);
}