| 우느님 |
dudals3938//
1.다중포인터 를 어느경우에 사용해요?? ( 불편하고 복잡하기만하고 효과는 별로인것같은데..)
음~~~
malloc 함수라고 있습니다.
malloc 함수는 전달인자로 준 크기 만큼 메모리공간을 할당해주는 함수입니다.
그런데 여기서말이죠.
malloc함수님께서 프로그래머가 원하는 크기만큼의 메모리공간을 만드러주었는데
이 공간을 이용못하면 정말 안습하게 되는거죠 ㅠ.ㅠ
그래서 malloc함수는 자기가 만든 공간의 포인터(주소)를 리턴한답니다ㅎㅎㅎ
프로그래머는 이 리턴된 포인터(주소)를 이용해서 만들어진 메모리공간을 사용한답니다ㅎ
이때, 포인터변수가 사용될테고 그 포인터변수를 통해서 만들어진 메모리공간을 조지고 볶고 하겠져?ㅎ
자, 그럼 좀 더 생각해봅시다.
malloc함수랑, 다중포인터를 이용하면
n X m 행렬을 구현할 수 있을 것 같다는 생각이 들지 않나요??
든다구요??
문제를 드리겠습니다.
n X m 행렬을 구현하시오.
몇 행 몇 열인지 사용자로부터 입력받고,
입력받은 행과열만큼 행렬을 구현하시오.
최대 5행 5열 까지 가능하며, 범위를 넘을 시 오류메세지를 보내고,
다시 입력받도록 하십시오.
입력받은 행과열만큼 행렬을 구현하여 사용자로부터 값을 대입받고,
대입받은 값을 화면에 출력하시오.
다음은 실행 예 입니다.
[output]
n X m Matrix maker !
n ? 3
m ? 2
1-1 ? 1
1-2 ? 2
2-1 ? 3
2-2 ? 4
3-1 ? 5
3-2 ? 6
Your 3 X 2 matrix is...
1 2
3 4
5 6
press any key to continue
힌트 : 2차원배열을 다중포인터를 이용하여 구현할줄 아는가?
이 문제는 안풀어도 좋습니다.
제가 막 메모리를 효율적으로 사용하기위해선 포인터를 이용하는게 좋다
그러니까 다중포인터를 이용해서,,,어쩌구저쩌구 꺆꺆@!#!@#@!!@#!@#@!#@!#ㅁㅇㄴㄹ
이런식으로 답변을 한다면 질문자가 답변을보고 이해하기도 힘들뿐더러 알고 있는 지식을 자랑하는 꼴밖엔 안된다고 생각합니다.
그래서 다중포인터를 이용하는 한 가지 예제만 위에 제시하였습니다.
다중포인터랑 포인터를 서로 다른 것이라 생각하지마십시오.
포인터(다중포인터)는 매우 많이 사용됩니다.
진도를 게속 나아가 보세요.
2.
1번답변에서 말한 malloc 함수같은 포인터(주소)를 리턴하는 함수를 써먹을려면
포인터를 이용해야 합니다.
포인터는 정하는것이 아니고 고유한 메모리주소이며,
이 메모리주소는 16진수로 복잡하게 나타나있기때문에
원활한 설명을 위하여 제가 임의로 숫자를 간단하게 정한 것입니다.
ps. 열혈강의 C,
뇌를자극하는 C프로그래밍,
등등..
C언어 기본서를 한번 완벽히 숙지하시고 강좌글을 보시는 것을 추천합니다. |
2012/01/24 |
|