728x90
range기반의 for문의 경우는 메모리를 참조하여 그 공간을 순회한다.
하지만 vector의 경우 사이즈가 늘어나면서 capacity가 커지게 되면 새로운 메모리 공간에 할당받게 되어 메모리 주소가 달라지는 경우가 발생하기때문에 for문 도중 벡터의 크기가 늘어가게되면 시스템이 종료된다
예를들으면 이러한 경우다
for(auto& a : myVec){
a = 1;
myVec.push_back(1);
}
또는 멀티쓰레드 혹은 비동기 환경에서 이러한 에러가 발생할 수 있기 때문에 이를 방지하기 위해서는 락을 걸어주거나 for문이 다 돈다음 myVec의 push_back을 보장해 주는것이 필요해 보인다 그것도 귀찮다면 인덱스 방식의 for문을 사용하면 원하는 결과는 아니겠지만 시스템 종료는 되지 않는다
728x90
'windowAPI' 카테고리의 다른 글
| WinApi 7강 - 꼬물꼬물 총알 만들기 (0) | 2024.11.23 |
|---|---|
| WindowAPi 5강 - SceneManager (0) | 2024.11.19 |
| WinAPI 4강 - KeyManager (0) | 2024.11.19 |
| windowAPI - 3일차 double buffering (0) | 2024.11.18 |
| WindowAPI 2일차 - 비동기 입력 및 싱글톤 (0) | 2024.11.18 |