ckdeo0706   4년 전

제가 문제풀면서 데이터 크기를 최소화할려고 문자형 포인터를 동적할당해서 정수값을 집어넣으려고 했는데요.. 

밑에 코드처럼 하면 힙초과 에러가 뜨더라고요.. sizeof(char)를sizeof(char*)로바꾸면 문제없이 잘돌아가는데 도대체 왜 저밑에 코드는 문제가 없는거 같은데  힙초과 에러가 발생할까요..?

djm03178   4년 전

%d는 int형에 입력을 받는 서식이기 때문에, scanf는 주어진 주소에 무조건 sizeof(int) 바이트 만큼의 데이터를 씁니다. 따라서 p에 할당되지 않은 주변 메모리를 건드리게 될 수 있습니다.

댓글을 작성하려면 로그인해야 합니다.