2013-03-20 1 views
-5

피연산자로 함수에서 미리 정의되지 않은 배열을 전달하기위한 구문은 무엇입니까? 나는 두 개의 서로 다른 배열을하고 피연산자의 모든 것이 제대로 작동으로 전달할 경우에 따라서피연산자로 배열에 대한 구문

void kilos(int percentage[2], char liquid[2][4]); 

:

예를 들어,이 기능을 가지고있다. 함수를 호출하기 전에 배열을 만들고 싶지 않으면 어떻게하면됩니까? 배열을 사용하지 않고 피연산자를 분석하는 유일한 솔루션입니까?

나는 함수를 호출 할,하지만 난 함수 같은 것을 호출 할 때 나는 배열을 만들고 싶어 : 함수에 대한 포인터를 전달

kilos(int percent[2]={40,60}, char liq[2][4]={'wate','milk'}) 
+0

예를 들어,이 함수는 다음과 같습니다. void kilos (int percent [2], char liquid [2] [4]); – kyrpav

+1

"미리 정의되지 않은"이란 무엇을 의미합니까? 어떻게 피연산자를 분석합니까? –

+0

이러한 매개 변수를 선택적으로 사용 하시겠습니까? –

답변

1

, 당신은 initializer lists 사용할 수 있습니다

void kilos(const std::vector<int> percentage, 
      const std::vector<std::string> liquid); 

// ... 

kilos({40, 60}, {"water", "milk"}); 
0

배열을 전달하는 것과 동일합니다. 포인터는 정적으로 할당 된 버퍼 또는 동적 메모리 (예 : new [] 또는 malloc) 일 수 있습니다. 당신이 C++ (11) 할 수있는 컴파일러가 있고 원시 배열 대신 std::vector를 사용하는 경우

C++에서
0

을 당신은이 같은 함수를 호출해야합니다

kilos((int[2]){40,60}, (char[2][4]){"wate", "milk"}); 

문자열 리터럴을 큰 따옴표로 묶으십시오. 그리고 널 종료자를 허용하려면 char[2][5] 인 두 번째 배열이 필요할 것입니다.

관련 문제