私は関数を持ち、その関数の外で初期化された配列を持っています。この関数の中では、私の配列のすべての値をゼロに設定しています。そのため、ゴミが返されません。私はファイルをスキャンしようとしており、ファイル内でスキャンしている番号(たとえば7)を使用して、配列のインデックスを1つ追加して更新します(インデックス7の値は1になります)。 whileループは最初にプログラムをクラッシュさせ、forループを使用するとプログラムは実行されますが、値は更新されません。私のループは、未知の時間の間走らせる必要がありますが、それは別の時間の問題だと思います。ファイルを読み込んだ後に新しい値で更新する関数で配列を取得できません
void createVArray (FILE*votes, int ray[], int len){
votes=fopen("votes.txt","r");
int i,k,num;
for(i=1;i<len;i++){
ray[i]=0;
}
while(num!=30){
fscanf(votes,"%d",&num);
ray[num]++;
}
}
問題は何ですか?
なぜ 'votes'を引数に渡しますか? – juanchopanza
パラメータには?プログラムの指示によると、これは3つのパラメータ、すなわちFILE *と整数 の配列と配列の長さを示す整数をとるvoid関数です。それがあなたが何を指しているのではない場合、あなたは何を意味するのか説明できますか?私は数週間だけコーディングしてきました。 @juanchopanza – ctelchi
@ctelchi彼は確かにそれを参照しています。関数本体の中にファイルポインタを宣言するだけで済みます。 – ameyCU