배열을 인수로받는 함수를 올바르게 작성하려면 어떻게해야합니까? 아래의 코드에서 결과는 36이어야하지만 내 기능에서는 4 번만 보여야합니다. 첫 번째 요소 만 전달하는 것처럼 보입니다.C++ 배열 및 함수
void test(float v[]){
printf("size: %d\n", sizeof(v)); //RESULT: 4
}
int main(){
GLfloat vv[] = {
0, 0, 0,
1, 1, 0,
1, 0, 0
};
printf("size: %d\n", sizeof(vv)); //RESULT: 36
test(vv);
return 0;
}
1 주 : 나는 분명 사본이 형식을 사용하여 지정하고 같은 foo (float (& ar) [N])'과 같이. –
WhozCraig
std::array
등 참조 시멘틱스, 어떻게 할 것인지 'sizeof (ar)'와 함께 올바른 크기를보고하는'template@WhozCraig : +1. 내 질문에 C와 C++ 태그를 모두 들었을 때 나는 의심스러워했다. –
일반화 된 솔루션을 작성한다는 관점에서 보면 대부분의 경우 iterator를 'begin'과 'end'에 전달하는 것이 더 좋지 않을까요? 그런 다음 함수를 배열에 적용하거나 "std :: vector"와 똑같이 적용 할 수 있습니다. – DavidO