int* array = new int[10];
으로 배열을 만들고 배열의 일부에 값을 채우려면 배열의 채우기 양을 어떻게 확인할 수 있습니까? 루프를 통해 각 값이 기본값인지 확인하고 싶지만 각 배열 요소의 기본값이 무엇인지 잘 모르겠습니다. 그것은 null
0
또는 가비지 값입니까?C++에서 배열의 기본값은 무엇입니까?
1
A
답변
3
이것은 C++에서 배열을 만들 때 기본값을 설정하는 방법입니다.
int array[100] = {0};
이제 모든 요소는 0
으로 설정됩니다. 이 모든 요소를 사용하지 않으면 쓰레기가되며 사용되는 경우 정의되지 않은 동작이됩니다.
모든 언어가 이와 같지는 않습니다. Java는 데이터 구조를 선언 할 때 기본값을 가지지 만 C++은 그렇지 않습니다.
2
기본값이 없으므로 가비지입니다.
1
유형이 int
인 경우가 아니라 원하는 것을 수행 할 수 없습니다.
배열의 초기화되지 않은 요소에는 예측할 수없는 값이 있습니다. 또한 이러한 요소에 액세스하면 정의되지 않은 동작이 발생합니다.
사용 할당시 센티넬 값으로 배열의 요소를 초기화 할 수 있습니다 :
int* ptr = new int[10]{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
-1
하지 않는 경우에 당신을 위해 일하는 어떤 센티넬 값을 사용.
0
C++ 방식으로 문제를 해결할 수 있습니다. 구조체 또는 클래스을 만들 수 있습니다. 여기에는 값과 부울 플래그가 포함되어 있습니다. Bool 플래그는 기본 생성자에서 거짓으로 설정하고 true 연산자 =로 설정해야합니다. 해당 클래스의 구현이 준비되어 있습니다 (boost.optional). std :: optional은 C++로 존재한다. 어레이
#include <boost/optional.hpp>
#include <iostream>
int main()
{
const size_t nArr = 100;
auto pArr = new boost::optional<int>[nArr];
const size_t nInit = 30;
for (size_t i = 0; i < nInit; ++i)
{
pArr[i] = i; //initialize nInit first values of pArr
}
size_t n = 0;
for (; n < nArr; ++n)
{
if (!pArr[n].is_initialized()) break;
// or more compact form:
//if(!pArr[n]) break;
assert(*pArr[n] == n);
}
std::cout << "nInit = " << nInit << ", n = " << n << std::endl;
assert(nInit == n);
delete[] pArr;
}
0
디폴트 값은 불확정는 가비지 수단이다.
어떻게 배열이 채워 졌는지 확인할 수 있습니까?
확인할 수 없습니다. C/C++
에는 배열 범위 검사가 없습니다. 직접해야합니다. 사용자가 삽입 한 데이터를 추적해야합니다. 카운터가 배열의 크기에 도달하면 배열이 가득합니다.
관련 문제
- 1. 기본값은
- 2. objective-c에서 기본값이 제공되지 않으면 필드의 기본값은 무엇입니까?
- 3. C에서 배열의 음수 제거
- 4. C에서 char 배열의 길이
- 5. C에서 배열의 재정렬을 구현하는 방법은 무엇입니까?
- 6. C에서 배열의 크기를 늘리는 이상한 방법은 무엇입니까?
- 7. C에서 정적 배열의 이동 평균
- 8. gtk PrintSettings 기본값은 무엇입니까?
- 9. 동적 유형의 기본값은 무엇입니까?
- 10. Ruby : 정의의 기본값은 무엇입니까?
- 11. kCGImageSourceShouldCache의 기본값은 무엇입니까?
- 12. android의 기본값은 무엇입니까? vmSafeMode?
- 13. PHP의 변수 기본값은 무엇입니까?
- 14. xmlns의 기본값은 무엇입니까?
- 15. WebRequest.Proxy - 기본값은 무엇입니까
- 16. Django 필드의 기본값은 무엇입니까?
- 17. 장고 앱의 기본값은 무엇입니까?
- 18. 'success_url'변수의 기본값은 무엇입니까?
- 19. "왼쪽"속성의 기본값은 무엇입니까?
- 20. 봄에 PropertiesPlaceholderConfigurer의 기본값은 무엇입니까?
- 21. tableView : viewForHeaderInSection : 기본값은 무엇입니까?
- 22. FACELETS_REFRESH_PERIOD의 기본값은 무엇입니까?
- 23. WSGIApplication Handler의 기본값은 무엇입니까?
- 24. 메이븐에있는 리포지토리의 기본값은 무엇입니까
- 25. 캐시 제어의 기본값은 무엇입니까?
- 26. 제네릭 형식의 기본값은 무엇입니까?
- 27. 정수의 기본값은 무엇입니까?
- 28. JTextArea 기본값은 무엇입니까?
- 29. ComboBox 기본값은 무엇입니까?
- 30. rspec에서 use_transactional_fixtures의 기본값은 무엇입니까?
그러면 채워진 배열의 크기를 확인하여 요소를 삽입하기 전에 전체 배열을 초기화해야합니까? 그렇게하면 비교할 기본값이 생깁니다. – mysticalstick
@johnmurphy 컴파일 할 프로그램에 대해 배열 크기를 선언해야합니다. 크기를 알아야합니다. –