C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[19199] Re:Re:Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요...
김대의 [] 764 읽음    2002-06-09 10:07
님이 잘못됬다는 애기로 들으셨다면 죄송하고요. 전 제가 배운것이 틀린것처럼 말씀하시니까..
그동안 배운게 잘못됬다고 생각해보세요. 돈은 물론이거니와 시간에 ......열 받잔아여..ㅜㅜ
자세히 알아가서 선생에게 따져야져.그러니 좀 이해가 갈수 있게 설명좀 해주십시요.
본론으로 들어가서...
제가 설명한게 맞다면...제가 위에서 설명한 내용은 in+i는 주소가 할당이 되었고 쓰레기 주소가 아니란 예기를 한건데...님께서 위 설명이 맞다고 하시면 in+i에는 주소가 할당이 안됬다고 하시니까...이상한 애기 아닌가요???.... 왜 그런지 확실히 좀 설명좀 해주세요.
한가지 질문더. 포인터를 사용하면서 배열로 공간할당을 해야한다고 하시는데..
또 여기서 제가 배운것이 틀리다는 말씀이신데요..
제가 배운건..포인터의 장점은 배열처럼 미리 공간할당을 할필요가 없고, 공간의 크기를 사용한만큼만 사용할수 있고, 이런 이유에서 프로그래머들이 포인터를 사용한다는걸 배웠습니다.
그런데, 님께서 말씀하신 배열로 공간할당을 한다면 그 주어진 공간이외에는 사용할수 없기 때문에 포인터의 의미가 없지않나요.즉 배열과 같다는 설명으로 들리는데..???

scanf("%d",(in+i) ); 에서


: 에... 님꼐서 설명하신게 맞지요
: 올리신소스를 보면서 설명?해볼꼐요
:
: #include <stdio.h>
: #include <conio.h>
:
: void main(void)
: {
: int inp, i = 0;
: int *in = &inp;
: // 여기서 in은 inp의 주소를 얻어옵니다.
: // in 을 출력하면 inp의 주소를 보여주겠지요
: // *in을 하면 inp가 가지고있는 값을 보여주지요
: //뭐 다아시는내용이겠죠
: clrscr();
:
: for(i=0;i<5;++i){
: scanf("%d",(in+i) );
: //값을 받습니다. 문제는 역기서 값을 집어넣는것인데요
: // (in + i) 에 값을 집어넣겠지요
: // 그런데 문제는 그주소? 에 해당하는곳을 위에서 컴파일러에게 알려주지않았습니다.
: // 위에 선언은 오로지 inp만을 알려주었죠 아시겠지만 배열로 하게되면 연속적으로
: // 공간을 할당(?) 해주죠. 그런데 그렇게 하지않았으니 이곳(주소)가 무엇을 하는지 알수없습니다.
: // 컴파일러에서 사용중인지 또 운영체제에서 사용중인지 또는 알수없는곳에서 사용할지
:
: printf("\n : %d", *(in+i)); }
: getch();
: // 에러는 대부분 종료할떄 날것입니다.
: // 모든 공간은 프로그램이 종료되면 돌려주게 되있겠죠
: // 그런데 종료시 없애는과정에서 이곳(in + i 의주소) 이 사용중일수도 있는것이죠
: // 또는 후에 사용할수도 있죠
: // 위에서 공간을 할당?하지않았으니까 그곳이 안전한곳인지 보장할수없죠
: // 그래서 디버그때와 릴리즈 일떄 에러가 다르게 날것이며
: //  in + i 에서  i에 따라서(그주소에따라서) 안날수도있습니다.
: // 또 사용컴퓨터에따라 안날수도있죠...  그러니 안전하게 하셔야되겠죠
:
: }
:
:
: 뭐 대충설명했는데요 잘전달되었는지는 모르겠네요.. 용어를 잘몰라서요.. 대충 느낌대로 용어를 선택했습니다.-_-
:
: 어찌되었든 님께서 배우신것은 잘못된게 없습니다. 그러나 사용에는 문제가 있습니다.
: 언어에서 변수선언의 이유중에 공간할당이라는 이유가 있을것입니다. 변수선언없이
: 분명 실시간으로 필요한곳에 변수를 사용할수도 있겠죠 뭐 몇몇언어나 스크립트는 이런식이겠죠
:
: 그러나 이렇게 하면 속도가 느려질듯합니다. 뭐 설명은 이상하지만.....
:
: 근데 김대의님은 위에서 부터보니깐 다른사람이 지적해준문제를 잘안받아들이시는거 같에요.
: 물론 대의님께서 배우신대로 말씀하시고 아시는대로 말씀하셨지만... 왠지 알려주는사람이 잘못됬다고 그러시니깐.. 기분이 좀...그렇네요 ^^
:
:
: 뭐 제가 틀렸을가능성이 높지만 대의님께서 하시는방법으로 안하시는것이 분명 좋습니다.
:
:
:

+ -

관련 글 리스트
30093                     Re:Re:Re:Re:제가 배운봐로는 제가 한프로그램은 주소할당이 되었는데요..ㅡㅡ; 유승철 869 2002/06/09
19193                     잘못된것이.. 유승철 856 2002/06/08
19194                         Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요... 김대의 887 2002/06/08
19197                             Re:Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요... 유승철 900 2002/06/09
19199                                 Re:Re:Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요... 김대의 764 2002/06/09
19263                                     Re:Re:Re:Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요... 이용윤 865 2002/06/11
19200                                     Re:Re:Re:Re:제가 배운봐로는 님은 포인터를 잘못 이해하시는군요... 유승철 962 2002/06/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.