malloc에 대해서
소라
2023.04.01
질문 내용 : malloc에 대해서 모르는 부분 이있는데
어떤 2개의 예제
1) pi = (int*)malloc(sizeof(int));
2) pi = malloc(sizeof(struct list));
이 2개가 있는데 malloc의 바로 왼쪽부분에 *붙이는 것과 붙이지 않는 차이점은
무엇인지 궁금합니다. 무슨 리턴형이 void라서 명시적 형변환한다고 하는데
무슨말인지 잘 모르겟네요 ㅜ
-
Sweeety
malloc 함수는 void 포인터를 돌려주는 함수이기 때문에 1번의 경우처럼 반드시 붙여줘야 됩니단.
-
사라
저기서 * 가 붙고 안붙고의 차이는 무엇인가요 ㅜㅜㅜㅜ???????
-
새론
폰트를 자제해 주시길 바랍니다.
-
범한
앞에 (int*)를 붙이는 이유는 사용자가 무슨용도로 쓸껀지냐에 따라서 앞에 붙는 내용이 달라지는데요,
따라서 붙이지 않는 경우에는 void형으로 할당을 해주긴하는데 할당만 하고 쓰지않으실꺼라면
모르겠지만 어차피 쓰실메모리라면...(안쓰려면 할당도 안하셨겠지만)
차라리 저기에서 어떤용도로 쓰겠다는 자료형을 명시해주시는게 나을것으로 생각됩니다.