C++에서 new로 메모리 할당 시 간헐적으로 0(or NULL)을 리턴합니다.

munhoney의 이미지

C++에서 new로 메모리 할당 시 간헐적으로 0(or NULL)을 리턴합니다.

현재 VC 6.0에서 사용하고 있는데,..
간헐적으로 new 로 생성을 하고자 할때 에러가 발생합니다.
메모리도 충분한것 같고... 별 문제는 없어 보이는데요.. 왜 이럴까요

현재 데이터는 한번에 10000 정도씩 생성을 하고 있구요. new.. 하는 부분에 printf로 확인해볼려고 하면 에러가 나지 않네요.

메모리 부족 말고도 new 생성시 에러가 나는 경우가 있나요?

어떤 경우 new 로 생성시 에러가 발생하는지 알고 싶습니다.

comafast의 이미지

메모리할당실패
-> 1) 메모리가 부족하다
2) 메모리는 충분한데, 연속적으로 할당가능한 메모리 크기가 부족하다 (memory defragment)

new 생성실패
-> 1) 메모리할당실패
2) 메모리할당은 성공했으나 constructor 수행시 에러발생

이정도 생각나네요

munhoney의 이미지

음... 그 말씀은 new를 통해 에러가 나는 경우 중 생성자 문제가 없으면 메모리 할당 문제라는 거군요.

혹시 연속적으로 할당 가능한 메모리크기가 얼마인지 알 수 있는 길이 있을까요..
만약 이것을 알면 미리 확인해보고 없으면 new를 하지 않으면 될 것 같아서요..흠..

---------------------------------
http://blog.naver.com/munhoney
---------------------------------