어그로 죄송합니다

c언어 궁금한게 있어서 질문드리려고하는데


int *arr = malloc(sizeof(int)*n);

이런식으로 동적인 배열을 선언하고나서


printf("%d",arr[0]); 하면 정상적인 값이 출력되잖아요?


근데

printf("%lf",arr[0]); 같이 형변환해서 출력하려하면 왜 값이 0이뜰까요