어떤 함수에 포인터변수a를 주고 그 함수안에서 a를 동적할당 하려는데 그렇게 하려면 a를 이중포인터로 받아서 동적할당 해야된데
왜 그렇게 해야되는거임?
댓글 5
그렇게 안 해도 된다. 그냥 포인터 변수 넘겨도 된다
배신자(221.142)2015-01-06 21:35
void func(int *&ptr;) 해 봐라
배신자(221.142)2015-01-06 21:39
동적할당이라는게 메모리 구역을 확보하고 그 주소를 리턴해주는거니까, 1차 포인터의 메모리 구역을 확보했다면, 그것을 받을수있는놈은 2차 포인터가 되는거 아닌가요? 그래야 동적할당으로 받은 주소값을 통해 1차포인터에 접근하고, 연이어 1차 포인터가 가르키는 변수도 찾아갈수있잖아요. 저도 공부중이라 잘 모르겠는데 대충 이럴거같은데
ㅇㅇㅇ(61.47)2015-01-06 22:18
동적할당을 위해 2중포인터가 필요할때는 2차원 배열 형태로 동적할당 할 때 뿐이다. 1차원 포인터를 함수로 넘기기 위해서 2중 포인터가 필요한게 아니란거다. 만약 함수내에서 2중포인터를 동적할당이 필요하다면 함수 인자에서도 이중포인터로 받아야 하는 것 뿐이다. 동적할당이란 것은 1차원 포인터 2차원(2중)포인터 모두 가능한거다.. 아직 1차원 배열 2차원 배열 도 잘 이해하지 못한것으로 추측한다. 기초부터 확실히 공부해라
경력자(39.121)2015-01-06 22:43
배열과 포인터의 관계, 1차원, 2차원 배열, 가능하면 3차원 배열까지 공부해봐라, 포인터에 동적할당하는 방법, 그리고 함수의 인자에 배열이나 포인터를 넘기는 방법에 대해 공부해라. 국내자료 중에 C포인터에 대해 가장 자세한 설명은 soen.kr 에 나와있다고 보면 된다. 참고해라
그렇게 안 해도 된다. 그냥 포인터 변수 넘겨도 된다
void func(int *&ptr;) 해 봐라
동적할당이라는게 메모리 구역을 확보하고 그 주소를 리턴해주는거니까, 1차 포인터의 메모리 구역을 확보했다면, 그것을 받을수있는놈은 2차 포인터가 되는거 아닌가요? 그래야 동적할당으로 받은 주소값을 통해 1차포인터에 접근하고, 연이어 1차 포인터가 가르키는 변수도 찾아갈수있잖아요. 저도 공부중이라 잘 모르겠는데 대충 이럴거같은데
동적할당을 위해 2중포인터가 필요할때는 2차원 배열 형태로 동적할당 할 때 뿐이다. 1차원 포인터를 함수로 넘기기 위해서 2중 포인터가 필요한게 아니란거다. 만약 함수내에서 2중포인터를 동적할당이 필요하다면 함수 인자에서도 이중포인터로 받아야 하는 것 뿐이다. 동적할당이란 것은 1차원 포인터 2차원(2중)포인터 모두 가능한거다.. 아직 1차원 배열 2차원 배열 도 잘 이해하지 못한것으로 추측한다. 기초부터 확실히 공부해라
배열과 포인터의 관계, 1차원, 2차원 배열, 가능하면 3차원 배열까지 공부해봐라, 포인터에 동적할당하는 방법, 그리고 함수의 인자에 배열이나 포인터를 넘기는 방법에 대해 공부해라. 국내자료 중에 C포인터에 대해 가장 자세한 설명은 soen.kr 에 나와있다고 보면 된다. 참고해라