Re: 포인터와 다중포인터
, 도장_ 관리자님이 작성일반 변수나 포인터 변수나 모두 메모리 공간을 차지합니다.
int a;
정수 선언도 공간을 차지하고
int *b;
포인터 선언도 공간을 차지합니다.
결국 둘 다 변수이고, 변수는 값을 담고 있습니다. 그 값이 정수이거나 포인터로 선언되었으니 주소를 값으로 저장하고 있거나의 차이뿐입니다.
C 언어는 블록 범위에서 최대 511개를 선언할 수 있지만, 이는 C 언어 표준의 권고안이고, 최소한 이 정도는 지원해야 한다는 뜻입니다. 정확한 범위는 컴파일러마다 다를 것입니다. 보통은 사용할 수 있는 메모리 공간만큼 변수를 선언할 수 있습니다.
그러나 저렇게 많은 변수를 선언한다는 것은 뭔가 심각하게 잘못되었다는 뜻입니다. 리눅스 커널조차 한 블록에 변수를 511개나 선언하는 일은 없습니다.