디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

아오 미치겟네요 C언어 메모리할당 제발좀 도와주세요

FEM(175.193) 2011.03.30 17:31:21
조회 273 추천 0 댓글 31

메인함수에서 루프 한번 돌때마다 부르는 서브루틴인데요...

코드가 너무 길어서 다는 못올리고 일단 윗부분 짜놓은것만 올려볼게요

double *FEM(double (*DENSITY),int sx,int sy,int sz,double ratio){

double ***STRAIN_ENERGY;
double MAX_STRAIN_ENERGY=0.;
double MIN_STRAIN_ENERGY=0.;

float angle = 0.0;
int rotate = 0;
//int mode = DEFAULT_LIGHT;


double ratio2;
////////////////////////////////double ratio; MOVED TO OPTIMIZATION_MAIN
////////////////////////////////int sx,sy,sz; MOVED TO OPTIMIZATION_MAIN
//double vx,vy,vz;


double K_matrix[ELDOF_SIZE][ELDOF_SIZE]={0.};
double (*K_matrix_temp)[ELDOF_SIZE];

//double deriv_matrix[DIMENSION][ELNODE_SIZE]={0.};
double (*deriv_matrix)[ELNODE_SIZE];

double (*deriv_matrix2)[ELNODE_SIZE];

double (*jacobian)[DIMENSION];
double (*Ijacobian)[DIMENSION];


double (*B_matrix)[ELDOF_SIZE];
double (*BT_matrix)[C_SIZE];
double (*C_matrix)[C_SIZE];
double (*CB_matrix)[ELDOF_SIZE];
double (*BTCB_matrix)[ELDOF_SIZE];
double **GLOBAL_K;
double *GLOBAL_U;
double *GLOBAL_R;
double *GLOBAL_U_ALLDOFS;
double *COORDS;
double *ELEM_DISP;
double *DISPLACEDCOORDS;
static double *FITNESS;
double *error;

double *YOUNGS_MODULUS;

double temp1;
double rmin=1.5;



int i,j,k,ii,jj,l,m,n;
int counter;
int i1;
int i2,j2,k2;
int start1,end1;
int start2,end2;
int start3,end3;
int ng=4;
int elem;
int temp;
int temp2;
int node[9]={0};
int LM[25]={0};//CONNECTIVITY MATRIX

int pinnodes[1000]={0};
int forcenodes[1000]={0};
int pinned=0;
int loaded=0;

int index;//size of the reduced K
int index2;//size of the reduced R
int index3;//used for U_ALLDOFS
int index4;//used for U_ALLDOFS

//for solver//
double old;
double sum;

double E=200.E6;
double v = 0.3;
double penal=1.;

double det=0;



double integration_factor=0;
double weight[5]={0,0.34785,0.65215,0.65215,0.34785};


printf("Starting FEM Analysis..\\n");
elem = (sx+1)*(sy+1)*(sz+1) * 3;

//DEFINES KU=R//
GLOBAL_K = (double **)malloc(sizeof(double *)*(elem+sizeof(double *)));
printf("1\\n");
GLOBAL_U = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
printf("2\\n");
GLOBAL_R = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
printf("3\\n");
GLOBAL_U_ALLDOFS = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
COORDS = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
DISPLACEDCOORDS = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
ELEM_DISP = (double *)malloc(sizeof(double)*(ELDOF_SIZE));
printf("4\\n");

YOUNGS_MODULUS = (double *)malloc(sizeof(double)*((sz*sx*sy)+sizeof(double)));
FITNESS = (double *)malloc(sizeof(double)*((sz*sx*sy)+sizeof(double)));


    //3차원배열 동적할당
    STRAIN_ENERGY = (double***)malloc(sizeof(double**)* (sz+sizeof(double**)) );
    STRAIN_ENERGY[0] = (double**)malloc( sizeof(double*)* (sz+sizeof(double*))*(sy+sizeof(double*)) );
    STRAIN_ENERGY[0][0] = (double*)malloc(sizeof(double)*(sz+sizeof(double))*(sy+sizeof(double))*(sx+sizeof(double)));
//ASSIGNS POINTERS///
for(j=1; j <= sy; j++) {
        STRAIN_ENERGY[0][j] = STRAIN_ENERGY[0][j-1] + sx;
    }
    for(i=1; i <= sz; i++) {
        STRAIN_ENERGY[i] = STRAIN_ENERGY[i-1] + sy;
        STRAIN_ENERGY[i][0] = STRAIN_ENERGY[i-1][0] + sy * sx;
        for(j=1; j <= sy; j++) {
            STRAIN_ENERGY[i][j] = STRAIN_ENERGY[i][j-1] + sx;
        }
    }
/////////////////////



error = (double *)malloc(sizeof(double)*(elem+sizeof(double)));
//MEMORY ALLOCATION ENDS//


여기서 메인함수에서 위 FEM 함수를 매 iteration 마다 호출을 하는데, <u style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">호출할때 첫번째 iteration 에서는 잘 돌아갑니다.</u>
그런데 메인함수에서 첫번째 iteration 을 끝내고 2번째 iteration에서 이 FEM 함수를 다시 호출하면 <u style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">프로그램이 실행되다가 멈춰버립니다.</u>
확인해보니 제일 처음 나오는 malloc 부분에서 멈추는것 같습니다.
메모리 할당에 문제가 있는것같은데, 이것때문에 죽겠습니다. 도대체 제가 뭘 잘못짠건지 모르겠네요.
FEM 함수 끝날때 malloc으로 할당한 메모리 전부 free 해보기도 하고 그냥 free 안하고 다시 해보기도 했는데 여전히 똑같습니다. 
전공이 CS가 아니라 컴퓨터 내부에서 메모리를 가지고 어떻게 하는건지는 기본적인 지식밖에 없어서 코딩을 할때 뭐가 잘못한것같기도 한데 도대체 뭐가 잘못된건지 아무리 뚫어져라 쳐다봐도 모르겠네요. 해결법이 없을까요? 제가 뭘 잘못하고 있는건지 좀 알려주세요!

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 남녀 팬 반응이 극과 극으로 나뉘는 것 같은 스타는? 운영자 24/09/30 - -
270904 크리스마스에 배포하면 흥할 거 같은 앱 아이디어 알려줌 [1] Regi☆갤로그로 이동합니다. 11.09.09 42 0
270903 프갤러들은 키 [6] 로하로하알로하갤로그로 이동합니다. 11.09.09 60 0
270902 애들아 일주일의 시간이 남았다.. 여친 없으면 빨리 만들어라.. [6] 쿄스케갤로그로 이동합니다. 11.09.09 95 0
270901 C++ 처음 다뤄보는데 도루도라갤로그로 이동합니다. 11.09.09 45 0
270900 가끔 그런애들있더라 ... [3] Light search갤로그로 이동합니다. 11.09.09 62 0
270899 여자친구는 많이들 있잖아.. [7] 쿄스케갤로그로 이동합니다. 11.09.09 88 0
270898 여자친구없는 사람들은불쌍하다 ... [3] Light search갤로그로 이동합니다. 11.09.09 74 0
270897 어흑 어제 너무 놀아서 계획대로 못했어 ㅠㅠ [1] 거칠게갤로그로 이동합니다. 11.09.09 56 0
270896 이런 ㅅㅂ '어게인' 키 187이야? [5] Deanex(59.13) 11.09.09 83 0
270895 Light search횽 짤방 받아가~ [5] blackd갤로그로 이동합니다. 11.09.09 95 0
270894 유지 보수가 어렵게 코딩 하는 방법 읽어봣냐? [8] 허허벌판갤로그로 이동합니다. 11.09.09 190 0
270893 아;; 한개의 헤더파일에 두개의 cpp가 붙는게 가능해? [7] +어게인갤로그로 이동합니다. 11.09.09 101 0
270892 Light Search 이사람 글 보면 [10] Deanex(59.13) 11.09.09 85 0
270891 쿠팡 떠러졌다 [1] 분당살람갤로그로 이동합니다. 11.09.09 74 0
270890 쿄스케횽퇴근하고집에오면몇시야 [2] Light search갤로그로 이동합니다. 11.09.09 52 0
270889 크리스마스 다가오니 크리스마스 관련 앱 구상해보자.. [15] 쿄스케갤로그로 이동합니다. 11.09.09 99 0
270888 영화보고 궁금한게 있는데 꼭 좀 알려주세요 ㅠㅠㅠ [7] ㅇㅁㄴㄴ(182.213) 11.09.09 57 0
270887 프로젝트 주제를 못찾아 방황중인 학부생 횽들을 위한 조언 [6] 허허벌판갤로그로 이동합니다. 11.09.09 155 0
270885 쿄스케횽은 나이가어떻게되는거야 [25] Light search갤로그로 이동합니다. 11.09.09 140 0
270884 blackd 횽 리플보니까 찌질남이 내 이야기 같다.. [4] Kanon갤로그로 이동합니다. 11.09.09 64 0
270883 나는 담배 이런생각으로사서피는데 .. [14] Light search갤로그로 이동합니다. 11.09.09 250 0
270882 아스가 없으니까 글리젠이 느린건가? [5] blackd갤로그로 이동합니다. 11.09.09 62 0
270881 아는 사람한테 여자사람 소개 받았는데 [10] 허허벌판갤로그로 이동합니다. 11.09.09 152 0
270880 쿄퍼스타케이 얌 [29] Light search갤로그로 이동합니다. 11.09.09 133 0
270879 컴퓨터전자는 컴공인가요 전자과인가요? 123(210.218) 11.09.09 100 0
270877 툴 돌리다 에러난건데...이런 메세지 뭐땜에 나는지 아시는분..답변좀.. [11] ㅇㅇㅇㅇ(203.244) 11.09.09 53 0
270870 나 토플 ㅁㄴㅇㄹ(130.126) 11.09.09 24 0
270869 오늘 출근하고 밖에서 담배피는데 여자가 다가오더니.. [11] 쿄스케갤로그로 이동합니다. 11.09.09 222 0
270868 중소기업다니면 못푸는문제 답 [2] 내인생(58.226) 11.09.09 94 0
270866 테트리스같은 게임 개발해야될텐데 一ㅡ갤로그로 이동합니다. 11.09.09 109 0
270865 횽들 이 소스 프로젝트 생성을 api로했는지 mfc로 했는지 좀 알려줘 [3] +어게인갤로그로 이동합니다. 11.09.09 82 0
270863 아인슈타인 [3] iljeomobolt갤로그로 이동합니다. 11.09.09 69 0
270862 돈벌기 힘들다... 뭐든 남에돈 따먹기는 쉬운게 아니야.. [1] iljeomobolt갤로그로 이동합니다. 11.09.09 90 0
270859 돌스가 군대가니까 [1] Adelposs갤로그로 이동합니다. 11.09.09 32 0
270858 아무래도 말이야 [1] Adelposs갤로그로 이동합니다. 11.09.09 28 0
270857 c++ 익스퍼트가 더 좋은건 당연하겠지 Regi☆갤로그로 이동합니다. 11.09.09 51 0
270856 자바 익히기 어려워?? [6] teo갤로그로 이동합니다. 11.09.09 136 0
270855 우리나라에서 의사연봉 처바를정도의 프로그래머는 [4] 이문동쮸쮸바갤로그로 이동합니다. 11.09.09 229 0
270853 무선 공유기는 아직 멀었구나.. [6] 이문동쮸쮸바갤로그로 이동합니다. 11.09.09 98 0
270852 뱅기가 뜰리가없자나 [1] deveun갤로그로 이동합니다. 11.09.09 42 0
270851 첫 직장을 잡았으요.. [4] 116.44(59.30) 11.09.09 127 0
270849 이게 프갤이야 학문갤이야 로하로하알로하갤로그로 이동합니다. 11.09.09 39 0
270848 당했다... 지우고 도망가기 신공 [9] [성대아싸]갤로그로 이동합니다. 11.09.09 153 0
270847 물위에서 이륙하는 비행기를 생각해보면 답나옴 ltw갤로그로 이동합니다. 11.09.09 62 0
270846 토익스피킹 공부하고 있는데 망했으요...ㅠㅠ [1] [성대아싸]갤로그로 이동합니다. 11.09.09 97 0
270844 리눅스 시스템프로그래밍 혼자 공부하기 좋은 책 없을까? [2] ㄷㄷㅈ(218.51) 11.09.09 94 0
270843 프로그램언어 하나만파도 먹고살게 된다는거같던데 [2] ㅇㅇ(61.77) 11.09.09 83 0
270842 디씨 형님들 제발 도와주세요 [5] Venom(121.155) 11.09.09 73 0
270841 NASM 번역 문서, (하드한 문서 아님) [5] [성대아싸]갤로그로 이동합니다. 11.09.09 90 0
270840 비행기 문제 저의 예상 [20] [성대아싸]갤로그로 이동합니다. 11.09.09 197 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2