안녕하십니까~
제목 그대로 malloc 할당시에 1.2G넘게 할당 되나요??
HP 64비트 서버 사용중인데 free() 안해주고 1.2G를 넘지 못하네요...
물리적 메모리가 부족한건지..
char * p = (char * ) malloc(1318798880); if(p == NULL){ printf("malloc error\n"); }
아마도 malloc 으로 얻을 수 있는 메모리 영역은 힙 영역으로 제한되기 때문에, malloc만으로 메모리를 100%사용하는 것은 안되는 것이 아닐까요. 대신 전역변수로 미리 버퍼를 생성하는 식으로 데이터 영역을 활용하셔도 될 것 같습니다. 물론 이 때는 오버플로우에 주의하셔야 겠습니다
램을 더 추가해보세요.
본인 맞습니다. 인증샷 우헤헤헤... 로 대신합니다.
저도 정확히는 모르겠습니다만...
아마도 malloc 으로 얻을 수 있는 메모리 영역은 힙 영역으로 제한되기 때문에, malloc만으로 메모리를 100%사용하는 것은 안되는 것이 아닐까요.
대신 전역변수로 미리 버퍼를 생성하는 식으로 데이터 영역을 활용하셔도 될 것 같습니다. 물론 이 때는 오버플로우에 주의하셔야 겠습니다
그건 아마도 램 용량이 부족해서 그럴 겁니다.
램을 더 추가해보세요.
본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.