포인터 변수는 선언된 변수가 차지하는 메모리가 있지만 배열은 없음


char *cStr = "Pointer";

char []arrStr = "Array";


cStr = 1234;                 //작성할 수 있음

arrStr = 1234;              //작성할 수 없음


cStr에는 주소 값을 갖기 위한 메모리 영역이 있지만 arrStr은 할당받지 못하였으므로 사용 X


배열의 주소를 알고 싶으면


cStr = arrStr;             //가능. arrStr자체가 배열의 시작부분을 가리키기 때문

cStr = &arrStr;          //에러! 배열은 주소가 없으므로

cStr = &arrStr[0];     //가능. 배열의 첫 원소의 주소가 포인터에 들어감



http://forum.falinux.com/zbxe/index.php?mid=gcc&document_srl=804305

+ Recent posts