프로그래밍 & 코딩 | 구독자 30명 | 식봉이는 식봉해

calloc 함수를 이용한 메모리 할당


img/21/12/25/17df1a145e34d0a5.png

보시다시피 일부러 에러를 유도하기 위해서 type도 다르게 했고, 메모리도 형편없이 작게 주었습니다.


그런데 왜 이게 재대로 나오는 건지 모르겠습니다.


이전에 char형에 256 이상 입력하면 숫자가 다른게 튀어나와서 그걸 포인터에도 기대하고 메모리 할당도 1byte만 했는데 데, 포인터는 왜...되는걸까요?T..T


그리고 포인터 정의할때 형(int, char)은 그냥 포인터가 지시하는 값의 형을 프로그레머가 참고하라는 의미인지요?


8byte 주소값이고, 값이 거기 저장되는 것도 아닌데다가, 메모리도 할당해줄 수 있다면 저기서 정의하는 type이라는 것은 결국 *p의 형이라는 의미 아니겠습니까? 포인터에서 형을 정의했다고 해서 포인터 자체의 메모리가 변하는 것도 아닌데 


실제로


int *p;

char n;

p=(int*)calloc(1, 1);

p=&n

printf("%c", *p);


scanf("%c", &n);
printf("Input number\t");


해도 잘 나옵니다. 




로그인하고 댓글 작성하기
루리웹 오른쪽
루리웹 유머
루리웹 뉴스 베스트
PC/온라인
비디오/콘솔
모바일

루리웹 유저정보 베스트