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

C/C++ Q/A
[1134] Re:질문 답 좀 부탁 드립니다..
김인구.구야 [whileone] 1455 읽음    2002-09-09 15:16
1번
char name1[20];

2번
char *name2; 
name2 = (char*)malloc(sizeof(char)*20);

두가지의 차이점을 보면요...
1번과 2번이 차지하는 메모리의 양은 각각
20바이트 22바이트 입니다.(도스)

1번의 name1는 변수가 아닙니다.
2번의 name2는 변수구요.
2번의 name2가 변수로써 2바이트의 메모리를 차지하기 때문에 22바이트가 된거구요.
LValue는 당연히 변수이여야만 합니다.
값을 할당받을려고 하면 공간(변수)이 있어야 하니까요.
name1은 name1++같은 포인터 연산이 안됩니다.
연산을 할려면 공간(변수)에 값이 저장되어 있어야 하는데 공간 자체가 없으니까요.
반면에 name2는 가능합니다.

1번이 변수가 아니다라는 부분의 설명이 부족합니다만 설명을 제대로 못하겠네요...

"seojt"에서 앞의 "를 문자열의 시작주소, 뒤의 "를 문자열의 종료문자(\0)로 생각하고
공부해 보세요 전 많은 도움이 되었습니다.

+ -

관련 글 리스트
3546         Re:상수포인터는 피연산자(식의 왼쪽값)으로 올 수 없다. 김인구.구야 1550 2002/09/09
3545         Re:상수포인터는 피연산자(식의 왼쪽값)으로 올 수 없다. 바래 1463 2002/09/09
3544         Re:상수포인터는 피연산자(식의 왼쪽값)으로 올 수 없다. 김재구 1527 2002/09/09
1134     Re:질문 답 좀 부탁 드립니다.. 김인구.구야 1455 2002/09/09
1135         Re:Re:질문 답 좀 부탁 드립니다.. 바래 1482 2002/09/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.