동적메모리 배우고있습니다.
어리버리
질문 제목 :
동적메모리 배우고있습니다.
malloc에대해 이해가 잘안돼요 ㅠㅠ
저기 if문 조건이 어떤식으로 돌아가는지 설명좀 부탁드릴께요
메모리 할당에 문제가 있습니다.가 출력되게 하려면 어떻게 고쳐줘야할까요질문 내용 : #include stdio.h
#include stdlib.hint main(void)
{
int *pi = null; if((pi = (int *) malloc(sizeof(int))) == null)
{
printf(메모리 할당에 문제가 있습니다.);
exit(1);
};
*pi = 3;
printf(*pi = %d\n, *pi);
printf(pi = %d\n, pi);
free(pi); return 0;
}이런 예제가 있는데 메모리 할당에 문제가 있습니다.가 출력되게 해보고싶은데아직 동적메모리 잘모르겠어서 malloc에대해 이해가 잘안돼네요;;그리고 저기 if문 조건이 어떤식으로 돌아가는지 설명좀 부탁드릴께요
-
머슴밥
메모리 많이 잡아먹는 프로그램 여러개 띄우고 메모리할당을 엄청많이 설정하면 가능할 것 같기도 하네요.
-
힘찬
아 그렇군요 이해하기 쉽게 설명해주신 ㄳ
\메모리할당에 문제가있습니다.\출력려면 molloc으로 null이 나올수있게 해야 되는 거겠네요
그럼 메모리할당을 실패하게 하려면 어떻게 해야하죠ㄷ;; 의도적으로 가능한가? -
코이
malloc는 메모리 할당을 실패할 경우에 NULL를 리턴합니다.
그걸 조건으로 써고 있습니다.
보충하자면
(int *) malloc(sizeof(int)) 를 pi에 대입하고
pi를 NULL과 비교합니다.