2013-01-06 4 views
0

이 의사 코드 ++동적으로 char 배열을 반복적으로 할당하면 문제가 발생합니까? C에서

char* data = new char[determine_size()]; 
// ... do some stuff with data 
delete[] data; 
// ... repeat process 

은 그러니까 기본적으로, 데이터는 반복적으로 크기가 다른 각 시간에 새로운 배열에 할당됩니다. 비록 이전 할당이 항상 우선 할당이 해제 될 때마다.

메모리 조각화가 발생합니까?

저는 C++에서 관리하는 메모리에 익숙하지 않습니다. 내 직감은 이것이 좋은 생각이 아니라고 말해.

+0

다릅니다. 이 데이터의 할당과 삭제 사이에 다른 할당을합니까? –

답변

6

당신은 질문,

“겠습니까 메모리 조각화이 리드? ”

음 메모리 할당이 발생하는 조각화 필요이지만, 충분한 없습니다.

e.e. 은 할당 패턴과 메모리 관리자를 포함하여 많은 것들에 대해에 따라 다릅니다.

그래서이 질문은 정말 답이 없습니다.

하지만 여전히 좋은 조언을 줄 수 있습니다.

원시 배열 및 new을 사용하지 마십시오. std::vectorstd::string.