1つの配列を非常に単純なforループに入れ、2つの配列を入れたときに出力が異なる理由を理解できません。私が欲しいものである、0,1,2,3,4,5,6 ...、100、しかし それはようarrN出力:C++ forループは、複数の配列より1つの配列で異なる結果を出力します。
int arrR[100];
int arrN[100];
//function to run the simulation
void runsim(){
for(int i=1;i<=100;i++){
arrN[i] = i;
arrR[i] = i;
}
}
//function to print the array
void printarr(int x[100]){
for(int i=0;i <= 100;i++){
cout << x[i] << ", ";
}
cout << endl;
}
int main(){
runsim();
printarr(arrR);
printarr(arrN);
return 0;
}
これはとしてarrRを出力し100,1,2、私が理解していない3,4,5,6、...、100。
私はこれは0,1,2,3,4,5,6、...、100
としてarrN出力int arrR[100];
int arrN[100];
//function to run the simulation
void runsim(){
for(int i=1;i<=100;i++){
arrN[i] = i;
}
}
//function to print the array
void printarr(int x[100]){
for(int i=0;i <= 100;i++){
cout << x[i] << ", ";
}
cout << endl;
}
int main(){
runsim();
printarr(arrN);
return 0;
}
をしたいどのようにループarrNプリント用からarrRを削除した場合
興味深いことに、コード内の100から100までをすべて変更すると、両方の配列をforループに入れてもこの問題は解消されます。
誰かが私が行方不明を理解するのを助けることができますか?私はC++を初めて使ったのでシンプルだと確信しています。ありがとうございました!
for(int i = 1; i <= 100; i ++) '...問題は既にあります:配列はC++でゼロベースです。アクセスできないメモリ領域にアクセスしようとしています。 –
アクセスするための 'x [100]'はありません –