[완료]2차원 배열 malloc 문제입니다 ㅠ
글쓴이: qmxmp / 작성시간: 목, 2011/08/25 - 10:41오후
안녕하세요~ 복학생입니다..
복학하고선 c언어를 다시 공부하고 있는데 너무나도 새롭네요 ㅠ
오랜만에 c를 잡으니 너무 나도 어려운게 많네요 ㅋ
그러다가 2차원 배열 선언을 malloc으로 하려는데 궁금하네요.
printf("size of arry"); scanf("%d",&size); char **arry; arry = (char **)malloc(sizeof(char*)*size); // arry = (char **)malloc(sizeof(char)*size); for (int i=0; i<size; ++i) arry[i] = (char *)malloc(sizeof(char)*size);
아래 글 뒤지다가 이런 코드가 나왔는데요
저기 // 처리된 줄이랑 그 바로 윗줄이랑 틀린점이 (char*) 이랑 (char) 이고요.
제생각엔 // 처리된 줄이 맞는것 같은데 어떤 고수님께서 주신 글로는 그 위에 코드네요 ㅠㅠ
차이점이 제머리로는 계산이 안되서... 도움 주실분 있나요??
Forums:
코드를 올리실땐 < code > 와 < /code >
코드를 올리실땐 < code > 와 < /code > 로 둘러싸주세요.
질문을 올렸을땐 잘 올라갔는지 한번 확인해보는게 예의가 아닐까 싶네요...
댓글 감사드립니다!
여기 게시판에 글을 처음 올려서 ㅠ < code > 사용법을 아예 몰랐네요~
위 소스에서arry[0], arry[1] ...
위 소스에서
arry[0], arry[1] ... arry[size-1] 각각은 char*(char형 포인터)입니다.
for문을 통해서 각각의 포인터에 malloc으로 size개의 char를 위한 공간을 할당해주고 있구요.
다시 말해서
arry : char형 포인터들에 대한 포인터
arry[ ] : char형 포인터
arry[ ][ ] : char
다시 말하면
size개의 char가 아니라
size개의 포인터들을 위한 공간을 할당하는 것이기 때문에 저러한 코드가 나옵니다.
잘 생각해 보세요...
댓글 감사드립니다. ㅠ
댓글 감사드립니다.
저도 어서 내공을 올려서 게시판에서 답글 달아줄수 있는 날이 왔으면 좋겠네요 ^^
댓글 달기