게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Segmentation fault 오류 뜨는데 뭐가 문제인지 봐주실수..
게시물ID : programmer_19011짧은주소 복사하기
작성자 : NaN
추천 : 0
조회수 : 308회
댓글수 : 4개
등록시간 : 2016/11/16 15:41:41
옵션
  • 본인삭제금지
gcc로 컴파일 하는데
main함수 코드에는 이상이 없는거 같은데
 
 
 
/* gaussj.c routine from <Numerical Recipes in C> page 39 */
#include <math.h>
#include "NRUTIL.h"
#define SWAP(a, b) {temp=(a); (a)=(b); (b)=temp;}
void gaussj(float **a, int n, float **b, int m)
{
  int *indxc, *indxr, *ipiv;
  int i, icol, irow, j, k, l, ll;
  float big, dum, pivinv, temp;
  indxc=ivector(1, n);
  indxr=ivector(1, n);
  ipiv=ivector(1, n);
  for (j=1; j<=n; j++) ipiv[j]=0;
  for (i=1; i<=n; i++) {
    big=0.0;
    for (j=1; j<=n; j++)
      if (ipiv[j]!=1)
 for (k=1; k<=n; k++) {
   if (ipiv[k] == 0) {
     if (fabs(a[j][k]) >= big) {
       big=fabs(a[j][k]);
       irow=j;
       icol=k;
     }
   } else if (ipiv[k] > 1) nrerror("gaussj: Singular Matrix-1");
 }
    ++(ipiv[icol]);
    if (irow != icol) {
      for (l=1;1<=n;l++) SWAP(a[irow][l], a[icol][l])
      for (l=1;1<=m;l++) SWAP(b[irow][l], b[icol][l])
    }
    indxr[i]=irow;
    indxc[i]=icol;
    if (a[icol][icol] == 0.0) nrerror("gaussj: Singular Matrix-2");
    pivinv=1.0/a[icol][icol];
    a[icol][icol]=1.0;
    for (l=1;1<=n;l++) a[icol][l] *= pivinv;
    for (l=1;1<=m;l++) b[icol][l] *= pivinv;
    for (ll=1; ll<=n; ll++)
      if (ll != icol) {
 dum=a[ll][icol];
 a[ll][icol]=0.0;
 for (l=1;1<=n;l++) a[ll][l] -= a[icol][l]*dum;
 for (l=1;1<=m;l++) a[ll][l] -= a[icol][l]*dum;
      }
  }
  for (l=n; l>=1; l--) {
    if (indxr[1] != indxc[l])
      for (k=1; k<=n; k++)
 SWAP(a[k][indxr[l]], a[k][indxc[l]]);
  }
  free_ivector(ipiv, 1, n);
  free_ivector(indxr, 1, n);
  free_ivector(indxc, 1, n);
}
이 코드나
 
 
#if defined(__STDC__) || defined(ANSI) || defined(NRANSI) /* ANSI */
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#define NR_END 1
#define FREE_ARG char*
void nrerror(char error_text[])
/* Numerical Recipes standard error handler */
{
 fprintf(stderr,"Numerical Recipes run-time error...\n");
 fprintf(stderr,"%s\n",error_text);
 fprintf(stderr,"...now exiting to system...\n");
 exit(1);
}
float *vector(long nl, long nh)
/* allocate a float vector with subscript range v[nl..nh] */
{
 float *v;
 v=(float *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(float)));
 if (!v) nrerror("allocation failure in vector()");
 return v-nl+NR_END;
}
int *ivector(long nl, long nh)
/* allocate an int vector with subscript range v[nl..nh] */
{
 int *v;
 v=(int *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(int)));
 if (!v) nrerror("allocation failure in ivector()");
 return v-nl+NR_END;
}
unsigned char *cvector(long nl, long nh)
/* allocate an unsigned char vector with subscript range v[nl..nh] */
{
 unsigned char *v;
 v=(unsigned char *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(unsigned char)));
 if (!v) nrerror("allocation failure in cvector()");
 return v-nl+NR_END;
}
unsigned long *lvector(long nl, long nh)
/* allocate an unsigned long vector with subscript range v[nl..nh] */
{
 unsigned long *v;
 v=(unsigned long *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(long)));
 if (!v) nrerror("allocation failure in lvector()");
 return v-nl+NR_END;
}
double *dvector(long nl, long nh)
/* allocate a double vector with subscript range v[nl..nh] */
{
 double *v;
 v=(double *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(double)));
 if (!v) nrerror("allocation failure in dvector()");
 return v-nl+NR_END;
}
float **matrix(long nrl, long nrh, long ncl, long nch)
/* allocate a float matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 float **m;
 /* allocate pointers to rows */
 m=(float **) malloc((size_t)((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;
 /* allocate rows and set pointers to them */
 m[nrl]=(float *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(float)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
double **dmatrix(long nrl, long nrh, long ncl, long nch)
/* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 double **m;
 /* allocate pointers to rows */
 m=(double **) malloc((size_t)((nrow+NR_END)*sizeof(double*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;
 /* allocate rows and set pointers to them */
 m[nrl]=(double *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(double)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
int **imatrix(long nrl, long nrh, long ncl, long nch)
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 int **m;
 /* allocate pointers to rows */
 m=(int **) malloc((size_t)((nrow+NR_END)*sizeof(int*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;

 /* allocate rows and set pointers to them */
 m[nrl]=(int *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(int)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float **submatrix(float **a, long oldrl, long oldrh, long oldcl, long oldch,
 long newrl, long newcl)
/* point a submatrix [newrl..][newcl..] to a[oldrl..oldrh][oldcl..oldch] */
{
 long i,j,nrow=oldrh-oldrl+1,ncol=oldcl-newcl;
 float **m;
 /* allocate array of pointers to rows */
 m=(float **) malloc((size_t) ((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure in submatrix()");
 m += NR_END;
 m -= newrl;
 /* set pointers to rows */
 for(i=oldrl,j=newrl;i<=oldrh;i++,j++) m[j]=a[i]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float **convert_matrix(float *a, long nrl, long nrh, long ncl, long nch)
/* allocate a float matrix m[nrl..nrh][ncl..nch] that points to the matrix
declared in the standard C manner as a[nrow][ncol], where nrow=nrh-nrl+1
and ncol=nch-ncl+1. The routine should be called with the address
&a[0][0] as the first argument. */
{
 long i,j,nrow=nrh-nrl+1,ncol=nch-ncl+1;
 float **m;
 /* allocate pointers to rows */
 m=(float **) malloc((size_t) ((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure in convert_matrix()");
 m += NR_END;
 m -= nrl;
 /* set pointers to rows */
 m[nrl]=a-ncl;
 for(i=1,j=nrl+1;i<nrow;i++,j++) m[j]=m[j-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float ***f3tensor(long nrl, long nrh, long ncl, long nch, long ndl, long ndh)
/* allocate a float 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
 long i,j,nrow=nrh-nrl+1,ncol=nch-ncl+1,ndep=ndh-ndl+1;
 float ***t;
 /* allocate pointers to pointers to rows */
 t=(float ***) malloc((size_t)((nrow+NR_END)*sizeof(float**)));
 if (!t) nrerror("allocation failure 1 in f3tensor()");
 t += NR_END;
 t -= nrl;
 /* allocate pointers to rows and set pointers to them */
 t[nrl]=(float **) malloc((size_t)((nrow*ncol+NR_END)*sizeof(float*)));
 if (!t[nrl]) nrerror("allocation failure 2 in f3tensor()");
 t[nrl] += NR_END;
 t[nrl] -= ncl;
 /* allocate rows and set pointers to them */
 t[nrl][ncl]=(float *) malloc((size_t)((nrow*ncol*ndep+NR_END)*sizeof(float)));
 if (!t[nrl][ncl]) nrerror("allocation failure 3 in f3tensor()");
 t[nrl][ncl] += NR_END;
 t[nrl][ncl] -= ndl;
 for(j=ncl+1;j<=nch;j++) t[nrl][j]=t[nrl][j-1]+ndep;
 for(i=nrl+1;i<=nrh;i++) {
  t[i]=t[i-1]+ncol;
  t[i][ncl]=t[i-1][ncl]+ncol*ndep;
  for(j=ncl+1;j<=nch;j++) t[i][j]=t[i][j-1]+ndep;
 }
 /* return pointer to array of pointers to rows */
 return t;
}
void free_vector(float *v, long nl, long nh)
/* free a float vector allocated with vector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_ivector(int *v, long nl, long nh)
/* free an int vector allocated with ivector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_cvector(unsigned char *v, long nl, long nh)
/* free an unsigned char vector allocated with cvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_lvector(unsigned long *v, long nl, long nh)
/* free an unsigned long vector allocated with lvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_dvector(double *v, long nl, long nh)
/* free a double vector allocated with dvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_matrix(float **m, long nrl, long nrh, long ncl, long nch)
/* free a float matrix allocated by matrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch)
/* free a double matrix allocated by dmatrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_imatrix(int **m, long nrl, long nrh, long ncl, long nch)
/* free an int matrix allocated by imatrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_submatrix(float **b, long nrl, long nrh, long ncl, long nch)
/* free a submatrix allocated by submatrix() */
{
 free((FREE_ARG) (b+nrl-NR_END));
}
void free_convert_matrix(float **b, long nrl, long nrh, long ncl, long nch)
/* free a matrix allocated by convert_matrix() */
{
 free((FREE_ARG) (b+nrl-NR_END));
}
void free_f3tensor(float ***t, long nrl, long nrh, long ncl, long nch,
 long ndl, long ndh)
/* free a float f3tensor allocated by f3tensor() */
{
 free((FREE_ARG) (t[nrl][ncl]+ndl-NR_END));
 free((FREE_ARG) (t[nrl]+ncl-NR_END));
 free((FREE_ARG) (t+nrl-NR_END));
}
#else /* ANSI */
/* traditional - K&R */
#include <stdio.h>
#define NR_END 1
#define FREE_ARG char*
void nrerror(error_text)
char error_text[];
/* Numerical Recipes standard error handler */
{
 void exit();
 fprintf(stderr,"Numerical Recipes run-time error...\n");
 fprintf(stderr,"%s\n",error_text);
 fprintf(stderr,"...now exiting to system...\n");
 exit(1);
}
float *vector(nl,nh)
long nh,nl;
/* allocate a float vector with subscript range v[nl..nh] */
{
 float *v;
 v=(float *)malloc((unsigned int) ((nh-nl+1+NR_END)*sizeof(float)));
 if (!v) nrerror("allocation failure in vector()");
 return v-nl+NR_END;
}
int *ivector(nl,nh)
long nh,nl;
/* allocate an int vector with subscript range v[nl..nh] */
{
 int *v;
 v=(int *)malloc((unsigned int) ((nh-nl+1+NR_END)*sizeof(int)));
 if (!v) nrerror("allocation failure in ivector()");
 return v-nl+NR_END;
}
unsigned char *cvector(nl,nh)
long nh,nl;
/* allocate an unsigned char vector with subscript range v[nl..nh] */
{
 unsigned char *v;
 v=(unsigned char *)malloc((unsigned int) ((nh-nl+1+NR_END)*sizeof(unsigned char)));
 if (!v) nrerror("allocation failure in cvector()");
 return v-nl+NR_END;
}
unsigned long *lvector(nl,nh)
long nh,nl;
/* allocate an unsigned long vector with subscript range v[nl..nh] */
{
 unsigned long *v;
 v=(unsigned long *)malloc((unsigned int) ((nh-nl+1+NR_END)*sizeof(long)));
 if (!v) nrerror("allocation failure in lvector()");
 return v-nl+NR_END;
}
double *dvector(nl,nh)
long nh,nl;
/* allocate a double vector with subscript range v[nl..nh] */
{
 double *v;
 v=(double *)malloc((unsigned int) ((nh-nl+1+NR_END)*sizeof(double)));
 if (!v) nrerror("allocation failure in dvector()");
 return v-nl+NR_END;
}
float **matrix(nrl,nrh,ncl,nch)
long nch,ncl,nrh,nrl;
/* allocate a float matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 float **m;
 /* allocate pointers to rows */
 m=(float **) malloc((unsigned int)((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;
 /* allocate rows and set pointers to them */
 m[nrl]=(float *) malloc((unsigned int)((nrow*ncol+NR_END)*sizeof(float)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
double **dmatrix(nrl,nrh,ncl,nch)
long nch,ncl,nrh,nrl;
/* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 double **m;
 /* allocate pointers to rows */
 m=(double **) malloc((unsigned int)((nrow+NR_END)*sizeof(double*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;
 /* allocate rows and set pointers to them */
 m[nrl]=(double *) malloc((unsigned int)((nrow*ncol+NR_END)*sizeof(double)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
int **imatrix(nrl,nrh,ncl,nch)
long nch,ncl,nrh,nrl;
/* allocate a int matrix with subscript range m[nrl..nrh][ncl..nch] */
{
 long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
 int **m;
 /* allocate pointers to rows */
 m=(int **) malloc((unsigned int)((nrow+NR_END)*sizeof(int*)));
 if (!m) nrerror("allocation failure 1 in matrix()");
 m += NR_END;
 m -= nrl;

 /* allocate rows and set pointers to them */
 m[nrl]=(int *) malloc((unsigned int)((nrow*ncol+NR_END)*sizeof(int)));
 if (!m[nrl]) nrerror("allocation failure 2 in matrix()");
 m[nrl] += NR_END;
 m[nrl] -= ncl;
 for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float **submatrix(a,oldrl,oldrh,oldcl,oldch,newrl,newcl)
float **a;
long newcl,newrl,oldch,oldcl,oldrh,oldrl;
/* point a submatrix [newrl..][newcl..] to a[oldrl..oldrh][oldcl..oldch] */
{
 long i,j,nrow=oldrh-oldrl+1,ncol=oldcl-newcl;
 float **m;
 /* allocate array of pointers to rows */
 m=(float **) malloc((unsigned int) ((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure in submatrix()");
 m += NR_END;
 m -= newrl;
 /* set pointers to rows */
 for(i=oldrl,j=newrl;i<=oldrh;i++,j++) m[j]=a[i]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float **convert_matrix(a,nrl,nrh,ncl,nch)
float *a;
long nch,ncl,nrh,nrl;
/* allocate a float matrix m[nrl..nrh][ncl..nch] that points to the matrix
declared in the standard C manner as a[nrow][ncol], where nrow=nrh-nrl+1
and ncol=nch-ncl+1. The routine should be called with the address
&a[0][0] as the first argument. */
{
 long i,j,nrow=nrh-nrl+1,ncol=nch-ncl+1;
 float **m;
 /* allocate pointers to rows */
 m=(float **) malloc((unsigned int) ((nrow+NR_END)*sizeof(float*)));
 if (!m) nrerror("allocation failure in convert_matrix()");
 m += NR_END;
 m -= nrl;
 /* set pointers to rows */
 m[nrl]=a-ncl;
 for(i=1,j=nrl+1;i<nrow;i++,j++) m[j]=m[j-1]+ncol;
 /* return pointer to array of pointers to rows */
 return m;
}
float ***f3tensor(nrl,nrh,ncl,nch,ndl,ndh)
long nch,ncl,ndh,ndl,nrh,nrl;
/* allocate a float 3tensor with range t[nrl..nrh][ncl..nch][ndl..ndh] */
{
 long i,j,nrow=nrh-nrl+1,ncol=nch-ncl+1,ndep=ndh-ndl+1;
 float ***t;
 /* allocate pointers to pointers to rows */
 t=(float ***) malloc((unsigned int)((nrow+NR_END)*sizeof(float**)));
 if (!t) nrerror("allocation failure 1 in f3tensor()");
 t += NR_END;
 t -= nrl;
 /* allocate pointers to rows and set pointers to them */
 t[nrl]=(float **) malloc((unsigned int)((nrow*ncol+NR_END)*sizeof(float*)));
 if (!t[nrl]) nrerror("allocation failure 2 in f3tensor()");
 t[nrl] += NR_END;
 t[nrl] -= ncl;
 /* allocate rows and set pointers to them */
 t[nrl][ncl]=(float *) malloc((unsigned int)((nrow*ncol*ndep+NR_END)*sizeof(float)));
 if (!t[nrl][ncl]) nrerror("allocation failure 3 in f3tensor()");
 t[nrl][ncl] += NR_END;
 t[nrl][ncl] -= ndl;
 for(j=ncl+1;j<=nch;j++) t[nrl][j]=t[nrl][j-1]+ndep;
 for(i=nrl+1;i<=nrh;i++) {
  t[i]=t[i-1]+ncol;
  t[i][ncl]=t[i-1][ncl]+ncol*ndep;
  for(j=ncl+1;j<=nch;j++) t[i][j]=t[i][j-1]+ndep;
 }
 /* return pointer to array of pointers to rows */
 return t;
}
void free_vector(v,nl,nh)
float *v;
long nh,nl;
/* free a float vector allocated with vector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_ivector(v,nl,nh)
int *v;
long nh,nl;
/* free an int vector allocated with ivector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_cvector(v,nl,nh)
long nh,nl;
unsigned char *v;
/* free an unsigned char vector allocated with cvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_lvector(v,nl,nh)
long nh,nl;
unsigned long *v;
/* free an unsigned long vector allocated with lvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_dvector(v,nl,nh)
double *v;
long nh,nl;
/* free a double vector allocated with dvector() */
{
 free((FREE_ARG) (v+nl-NR_END));
}
void free_matrix(m,nrl,nrh,ncl,nch)
float **m;
long nch,ncl,nrh,nrl;
/* free a float matrix allocated by matrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_dmatrix(m,nrl,nrh,ncl,nch)
double **m;
long nch,ncl,nrh,nrl;
/* free a double matrix allocated by dmatrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_imatrix(m,nrl,nrh,ncl,nch)
int **m;
long nch,ncl,nrh,nrl;
/* free an int matrix allocated by imatrix() */
{
 free((FREE_ARG) (m[nrl]+ncl-NR_END));
 free((FREE_ARG) (m+nrl-NR_END));
}
void free_submatrix(b,nrl,nrh,ncl,nch)
float **b;
long nch,ncl,nrh,nrl;
/* free a submatrix allocated by submatrix() */
{
 free((FREE_ARG) (b+nrl-NR_END));
}
void free_convert_matrix(b,nrl,nrh,ncl,nch)
float **b;
long nch,ncl,nrh,nrl;
/* free a matrix allocated by convert_matrix() */
{
 free((FREE_ARG) (b+nrl-NR_END));
}
void free_f3tensor(t,nrl,nrh,ncl,nch,ndl,ndh)
float ***t;
long nch,ncl,ndh,ndl,nrh,nrl;
/* free a float f3tensor allocated by f3tensor() */
{
 free((FREE_ARG) (t[nrl][ncl]+ndl-NR_END));
 free((FREE_ARG) (t[nrl]+ncl-NR_END));
 free((FREE_ARG) (t+nrl-NR_END));
}
#endif /* ANSI */
 
여기서 문제가 있는거 같은데요
아직 초보라 어느 부분이 문제인지 모르겠네요 ㅠㅠ
 
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호