Trying to teach myself c++, just wondering how to populate array with for loop.

Having trouble populating array with for loop. To me everything seems logically correct but the compiler says otherwise with I try print the contents of the array on screen, It shows up with -848993460. Can someone tell me why this happened and what I'm doing wrong.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;

{
   
	int array[4];
	int i = 0;
	
	cout << "Enter 4 numbers ";


	for (i; i < 4; i++)
	
	{
		cin >> array[i];
		
	}
	
	cout << array[i];
	

	
	
	return 0;
}
Your last cout is accessing the array out of bounds, i is equal to 4 after that loop. I'd recommend something more like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

using namespace std;

int main()
{

    int array[4];
    cout << "Enter 4 numbers ";

    for(auto& itr : array)
        cin >> itr;

    for(auto& itr : array)
        cout << itr << " ";
    cout << endl;

    return 0;
}


thanks very much, I've never seen something like for(auto& itr : array) before, Can you briefly explain whats going on there?
> Thanks very much, I've never seen something like "for(auto& itr : array)"
It is actually a range-based for-loop.

Learn more :
http://en.cppreference.com/w/cpp/language/range-for
Topic archived. No new replies allowed.