2016-09-17 12 views
-4

私は関数内で作成した構造体を別の関数に渡そうとしています。基本的に構造体の量は動的に作成されますが、構造体の量はテキストファイルにあります。 5と5のデータセットのような数字です。関数で作成した構造を別の関数に渡したいと思います。私は数ヶ月前にプログラミングを始めましたので、簡単な解決策がある場合、またはこの質問に尋ねられた場合は、私を許してください。関数へのポインタ構造体?

struct graph 
{ 
int Max,Min,index; 
double dataArray[300]; 
}; 

void readfile() 
{ 
int amount; 
char tmpSTR,nmbrGraph; 
ifstream myFile("data1.txt",ios::in); 
myFile>>amount; 
myFile>>tmpSTR; 
myFile>>nmbrGraph; 
graph* Data = new graph[amount]; 

    for(int j=0;j<nmbrGraph;j++) 
    { 
    for(int i=0;i<299;i++) 
     myFile>>Data[j].dataArray[i]; 
    } 
//hOW WOULD I PASS THE STRUCTURE "DATA" TO THE FUNCTION anotherFunction? 
} 

void anotherFunction() 
{ 
for(int i = 0;i<300;i++) 
cout<<Data[scroll].dataArray[i])<<endl; /*Error here! scroll being an 
integer declared globally*/ 
} 
+0

"...私の関数で作成した構造体を別の関数に渡す" - *パラメータ*は、あまり推奨されないグローバル変数のスタックを使用する予定がない限り必須です。また、あなたのために、投稿されたコードの 'nmbrGraph <= amount'が本当に真実であること、あるいは既に未定義の振舞いを呼び出していることを望みます。 – WhozCraig

答えて

2

引数としてanotherFunctionに値または参照によりgraph*ポインタを渡します。また、あらかじめわかっていないファイルを読むことによって決定された番号項目を含めることが重要です。

// by value 
void anotherFunction(graph* Data, int amount); 
// by reference 
void anotherFunction(graph*& Data, int amount); 
関連する問題