그래서 내가 아는 바로는 예비는 추상화를 초기화하지 않지만 단순히 추상화를 포함하기 위해 공간을 할당합니다. 그러나 v [0]은 항상 첫 번째 단위 화 된 메모리를 제공해서는 안되며 값을 할당하면 안됩니다.vector.reserve (2) 다음에 v [0] = 2가 잘못된 이유는 무엇입니까?
3
A
답변
9
reserve
은 벡터 크기를 변경하지 않기 때문에. 필요한 경우 벡터의 크기를 늘릴 수있는 충분한 공간이있는 메모리의 위치로만 벡터를 이동시킵니다.
v[0]=2
또는 v[1]=0
으로 전화 할 수 있으려면 이 아니라 resize(2)
을 사용해야합니다.
1
정의되지 않은 동작을 호출하기 때문에. 라이브러리 작성자는 크기를 조정할 때까지 begin()의 주소를 nullptr로 합법적으로 남겨 둘 수 있습니다. 또는 0xBAADFOOD로 설정하십시오. 또는 HDD를 쓸 때 포맷하십시오.
이제는 초기화되지 않은 메모리가 발생합니다. 디버그에서 단언하는 것 말고는 벡터가 상태를 고칠 방법이 없다는 사실 외에는 무시 무시한 일이 발생하지 않습니다.
관련 문제
- 1. Javascript에서 2 /// 2가 2 인 이유는 무엇입니까?
- 2. Doctrine 2가 ~ Entity.php 파일을 만드는 이유는 무엇입니까?
- 3. Doctrine 2가 ~ Entity.php 파일을 만드는 이유는 무엇입니까?
- 4. Sencha 2가 Webkit 브라우저에서만 작동하는 이유는 무엇입니까?
- 5. '[$ #> 0]이 (가) 잘못된 이유는 무엇입니까? 그때'?
- 6. "v = 2, v = 2.x 또는 v = 2.s를 지정할 때 현재 사용되는 Google Maps API의 버전은 무엇입니까?"
- 7. 잘못된 오프셋 '0'오류
- 8. 최고의 MVC v.2 학습 소스는 무엇입니까?
- 9. navigator.cpuClass가 잘못된 이유는 무엇입니까?
- 10. CodeIgniter 2가 모듈 식 확장을 지원하지 않는 이유는 무엇입니까?
- 11. 반환 값이 잘못된 이유는 무엇입니까?
- 12. 잘못된 프로그램 카운터 값 : 0
- 13. ASP.NET MVC 2가 default.aspx가 아니고 작동하지 않는 이유는 무엇입니까?
- 14. "Chunky 파서에서 문제 2가 발생했습니다"라는 경고가 나타나는 이유는 무엇입니까?
- 15. 잘못된 인수 개수 (1에 대해 0)
- 16. Silverlight 2가 WCF basicHTTP 바인딩 만 지원하는 이유는 무엇입니까?
- 17. Windows XP에 아래 첨자 2가 나타나지 않는 이유는 무엇입니까?
- 18. auth.login 다음에 auth.logout이 호출되는 이유는 무엇입니까?
- 19. ShowWindow 다음에 UpdateWindow를 호출해야하는 이유는 무엇입니까?
- 20. 폐쇄 템플릿에 "Hello"다음에 공백이없는 이유는 무엇입니까?
- 21. 매크로 정의에 @ 기호가 필요한 이유는 무엇입니까? 다음에
- 22. with 문 다음에 컨텍스트가 멈추는 이유는 무엇입니까?
- 23. CakePHP 2가 매번 2 개의 이메일을 보냅니다.
- 24. 출력이 잘못된 순서로 나타나는 이유는 무엇입니까?
- 25. Doctrine 2가 내 조직을 찾지 않는 이유는 무엇입니까?
- 26. 2 UIAlertView 다른 하나 다음에
- 27. 인라인 이벤트 처리기 다음에 false를 반환하고 true를 반환하는 이유는 무엇입니까?
- 28. std :: vector.reserve() 이후에 std :: vector에서 재 할당
- 29. Linux reboot() 시스템 호출 : kernel_halt() 다음에 do_exit (0)을 호출하는 이유는 무엇입니까?
- 30. Seq [V]가 Map [Int, V]를 확장하지 못하고 Set [V]가 Map [V, Bool]을 확장하지 않는 이유는 무엇입니까?
['reserve()'] (http://en.cppreference.com/w/cpp/container/vector/reserve) 컨테이너 ['capacity']를 변경합니다 (http://en.cppreference.com/ w/cpp/container/vector/capacity)가 아니라 ['size'] (http://en.cppreference.com/w/cpp/container/vector/size)를 참조하십시오. 요소가 구성되지 않고 ['size()'] (http://en.cppreference.com/w/cpp/container/vector/size)는 0을보고합니다. – Blastfurnace