KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am assigning values in a C++ program out of the bounds like this: #include <iostream> using namespace std; int main() { int array[2]; array[0] = 1; array[1] = 2; array[3] = 3; array[4] = 4; cout << array[3] << endl; cout << array[4] << endl; return 0; } The program prints 3 and 4 . It should not be possible. I am using g++ 4.3.3 Here is compile and run command $ g++ -W -Wall errorRange.cpp -o errorRange $ ./errorRange 3 4 Only when assigning array[3000]=3000 does it give me a segmentation fault. If gcc doesn't check for array bounds, how can I be sure if my program is correct, as it can lead to some serious issues later? I replaced the above code with vector<int> vint(2); vint[0] = 0; vint[1] = 1; vint[2] = 2; vint[5] = 5; cout << vint[2] << endl; cout << vint[5] << endl; and this one also produces no error.
Tags (comma-separated)
Save Edits
Cancel