인프런 커뮤니티 질문&답변

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.

작성한 질문수

홍정모의 따라하며 배우는 C++

6.20 std::array 소개

array<int,n> 관련 질문

작성

·

185

0

4:44초 에 나오는 매개변수 array<int,5>를 보고

크기값을 바꾸면 어떻게 될까 싶어서 바꾸어봤었는데

오류가 났었습니다

( array<int,4> 나 array<int,6> 처럼 5보다 작거나 큰값을 넣었습니다)

그래서 인수값을 형변환 해줬더니 배열은 형변환이 안된다는 듯한 오류가 떠서 궁금증이 생겼는데

 

Q1. array<int, n>의 크기값을 왜 바꿀수가 없나요?

 

Q2. 배열은 형변환이 왜 안되나요?

 

 

답변 2

0

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.
질문자

void printLength(const array<int, 5>& your_arr)
{
	cout << your_arr.size() << endl;
}

int main()
{
	array<int, 5> my_arr{ 16,5723,23,644,42 };

	static_cast<array<int, 4>>(my_arr); // Error	C2440	'static_cast': cannot convert from 'std::array<int,5>' to 'std::array<int,4>'
	array<int, 4>(my_arr);//Error	C2371	'my_arr': redefinition; different basic types
	printLength(my_arr);

	return 0;
}

형변환 시도 했던 코드입니다

0

안녕하세요

형변황 시도한 코드랑 오류 메세지도 함께 부탁드립니다. 

배열이 형변환 안되는건.. 그 안에 든 모든 원소들도 다 형변환하여야하고 이에 더하여 형변환한다는 것은 데이터 크기가 바뀐다는 것이니 한 칸씩 밀려나거나 땡겨오는 일도 일어나야하지 않을까요? (생각만 해도 무거운 방식일 것 같네요..) 그래서 안될 것 같단 생각이 듭니다. 

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.
질문자

답변 감사합니다

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.

작성한 질문수

질문하기