Хорошо, поэтому я преподавал своей девушке несколько C++, и она написала программу, которая, как я думал, не сработает, но это было так. Он обращается к еще одному элементу массива, тогда есть (например, доступ к массиву [5] для массива размером 5). Является ли это экземпляром переполнения буфера? Мои мысли о том, что он пишет/получает доступ к памяти непосредственно после массива, это правильно? В основном, мой вопрос здесь ... почему это работает?Переполнение массива (почему это работает?)
#include <iostream>
using namespace std;
int main()
{
int size;
cout << "Please enter a size for the array." << endl;
cin >> size;
cout << endl;
cout << "There are " << size << " elements in this array." << endl;
cout << endl;
cout << endl;
cout << endl;
int array[size];
for (int counter = 1; counter <= size; counter++)
{
cout << "Please enter a value for element " << counter << "." << endl;
cin >> array[counter];
}
cout << endl;
cout << endl;
for (int counter = 1; counter <= size; counter++)
{
cout << "Element " << counter << " is " << array[counter] << "." << endl;
cout << endl;
}
cout << "*bing! :)" << endl;
cout << endl;
return 0;
}
Это также может вызвать сбой в матрице. – dreamlax