2017-01-18 7 views
0

Ich versuche Array von Hauptfunktion zu verwenden, die in eine Funktion und in eine andere Funktion übergeben wird. Unten ist die vereinfachte Version von dem, was ich versuche zu tun.C++ Array an Funktion übergeben und dann an eine andere Funktion übergeben

Ich kann nicht func2() in der Hauptfunktion setzen, weil der Code, den ich tat, mich in void func() tun und dann auf void func2() gelten.

#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); 
} 

Edit: Scheint, wie das Problem der Ordnung der Funktion mit dem Array statt etwas falsch ist, das ich ursprünglich dachte, es wäre.

#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

Ihr Beispiel wird fehlschlagen, weil func2 nach func deklariert ist – Dillanm

+0

Ich kann das Array nicht an func2 übergeben() – Nasx

+2

Siehe @Dillanm's Kommentar. Sie müssen 'func2' deklarieren, bevor Sie es verwenden. –

Antwort

0

Versuchen, Ihre Funktionen tauschen um:

#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); 
} 

Das Problem ist, dass Sie func2 sind Referenzierung die func nichts weiß über.

Versuchen Sie auch, Zeiger zu verwenden, anstatt ganze Arrays in Funktionen zu kopieren. Es ist viel effizienter.

+1

Es gibt kein Kopieren von Arrays hier. 'func' und' func2' nehmen beide einen 'char *' Parameter. – aschepler

Verwandte Themen