私は、実行時に必要なだけ多くのエントリを入力できるように、私が望む配列を "動的"に配置しようとしています。しかし、私はポインタNthTeam
が指していると推測する配列は、移入されていない:私は私のコードでcin >> NthTeam[(playerCounter - 1) * STND_NO_GAMES + (i - 1)]
を使用する場合この配列を入力値に代入するにはどうすればよいですか?
int* NthTeam = NULL;
NthTeam = (int*)realloc(NthTeam,(playerCounter*STND_NO_GAMES)*sizeof(int));
// loops through each player's standard number of games
for (int i = 1; i <= STND_NO_GAMES; i++) {
//input the score into the remalloced array
cout << "Enter player " << playerCounter << "'s score " << i << ": ";
cin >> inputValue;
NthTeam[((playerCounter-1)*STND_NO_GAMES+(i-1)))] = SanityCheck(inputValue);
}
をしかし、それは仕事をし...配列が移入されます。
私はthis linkから、NthTeamを通常の配列と同じように使用できると信じていましたが、ここでは起こっていないと思います。私がただcin
を使用することができない理由は、配列にそれを許可する前に入力の有効性チェックを実行することになっているからです。
私は非常に迷って答えを求めています。私の今のところでは、その多くが複雑すぎます。
こんにちは、あなたはcとして質問にタグを付けますが、コードはC++のようです。それがどれであるかを明確にしてください。 – MByD
なぜmallocではなくreallocを使用していますか? – TJD
あなたはサイズ変更のためにメモリを再割り当てするための 'realloc'を使用すべきではありません。あなたは 'malloc'か' calloc'を使うべきです。 – twain249