2차원 동작 할당시 TIP..이랄까요?
글쓴이: ep6tri / 작성시간: 월, 2008/10/27 - 1:31오후
char **p; p=(char **)malloc(n*sizeof(char *)); for (i=0;i<n;i++) /* n행 m열입니다 */ p[i]=(char *)malloc(m*sizeof(char)); /* ... */ for (i=0;i<n;i++) free(p[i]); free(p);
많이 이렇게 인터넷에서 쓴다고 나와 있습니다.
하지만 이렇게 쓸 수도 있지요.
char **p; char *t; p=(char **)malloc(n*sizeof(char *)); t=(char *)malloc(n*m*sizeof(char)); /* n행 m열을 한번에 할당합니다 */ for (i=0;i<n;i++) { *(p+i) = t; t += m; } /* ... */ free(*p); free(p);
열 수에 걸쳐 여러번 malloc을 실행시키지 않아도 되고
해제할 때도 free를 두 번만 써도 되구요..
좀 더 2차원 배열의 메모리 배열의 모습에 맞게 할당이 되네요..
좋은 것 같아서 올려봅니다.
Forums:
?????
---------------------------------------------
svn + trac + my project --> success ???
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------