올해 입학한 대학 새내기 입니다.
전공시간에 포인터와 동적할당에 대해 배우고있는데 궁금증이 생겨 질문드리러 왔습니다.
현재 만들고 싶은 것은 입력값에 따라 크기가 달라지는 배열입니다.
질문 드리겠습니다.
1) int *num = (int*)malloc(n)의 뜻은 n바이트 만큼의 메모리를 할당하고 그 시작 주소를 num이라는 포인터 변수에 int형 포인터 값으로 반환한다는 뜻이라 알고있습니다.
그렇다면 사용자가 4를 눌렀을 때 4바이트 만큼의 메모리가 할당 되고
이에 따라 4개의 int값을 받아야하는 num 배열은 터져야 한다 생각했는데, 배열에 값이 잘 들어갑니다.
본디 예제에는 뒤에 n*sizeof(int)이런 식으로 int값의 크기에 맞게 할당을 하는데.. 저 코드는 어째서 작동하는지 의문입니다. 배열이 왜 안터지는지 설맹해주시면 정말 감사드리겠습니다.