물론 하지말라고해도 할거임
구조체를 벡터에다 push_back했는데
얘가 반복자를 이용한 for문 순회에 들어가기만하면 뻒 하고 뻗어버리길래 디버깅해보니까
구조체변수가 한 10개정도되는데 capacity가 1으로 할당됨
도무지 왜이러는지 이유를 모르겠음.. 원인좀 알려주길 앙망함
- 아래는 원문-
//미사일 초기화
tagBullet bullet;
ZeroMemory(&bullet, sizeof(tagBullet));
bullet.bulletImage = new image;
bullet.bulletImage->init("missile.bmp", 0, 0, 416, 62, 13, 1, true, RGB(255, 0, 255));
bullet.speed = 0.1f;
bullet.angle = angle;
////
bullet.x = bullet.fireX = x;
bullet.y = bullet.fireY = y;
bullet.fire = true;
bullet.rc = RectMakeCenter(bullet.x, bullet.y,
bullet.bulletImage->getFrameWidth(),
bullet.bulletImage->getFrameHeight());
_vBullet.push_back(bullet); //벡터에 넣어준다
bullet 구조체를 sizeof해보니까 56이 나오는데 벡터메모리할당은 딸랑1해줌.. 왜일까요
벡터 size 는 요소 수인데
숲속의참치 // ㄴㄴ size는 당연히1인데 문제는 capacity도 1임
할당된 메모리수 말하는건가? 그거 부족할때마다 두배로 불어남. 그것도 요소수임
헐그렇구나..뭐가문제인거지
지금 순회 할려고만하면 vector iterators incompatible 하고 메세지뿜은다음 뻑나버림
미사일 동적할당해줘야하는거아님?