2017-01-18 1 views
0

main 함수에서 배열을 사용하려고합니다.이 배열은 함수로 전달되고 다른 함수로 전달됩니다. 아래는 내가하려는 일의 단순화 된 버전입니다.C++ 함수에 배열을 전달한 다음 다른 함수로 전달

func2()을 주 기능에 넣을 수 없습니다. 코드에서 void func()을 수행 한 다음 void func2()에 적용해야하기 때문입니다.

#include <iostream> 
using namespace std; 

void func(char arr[2]) 
{ 
    func2(arr); 
} 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 

편집 : 문제가 아니라 내가 원래 생각했던 배열에 문제의 함수의 순서처럼 보인다.

#include <iostream> 
using namespace std; 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

void func(char arr[2]) 
{ 
    func2(arr); 
} 

int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 
+3

func2가 func 뒤에 선언 되었기 때문에 예제가 실패합니다 – Dillanm

+0

func2()에 배열을 전달하지 못하는 것 같습니다 – Nasx

+2

@Dillanm의 의견보기. 사용하기 전에'func2'를 선언해야합니다. –

답변

0

시도, 주위에 당신의 기능을 교환 :

#include <iostream> 
using namespace std; 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

void func(char arr[2]) 
{ 
    func2(arr); 
} 



int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 

문제는 당신에 대해 아는하지 않는 funcfunc2를 참조하고 있다는 점이다.

또한 전체 배열을 함수로 복사하는 대신 포인터를 사용해보십시오. 훨씬 더 효율적입니다.

+1

여기에 배열 복사가 없습니다. 'func'와'func2'는 실제로'char *'매개 변수를 취합니다. – aschepler

관련 문제