2017-01-18 20 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

関連する問題