Я не уверен, является ли приведенный ниже фрагмент кода C ++ законным или нет:
std::vector<int*> myints;
for (int i = 0; i<N; i++) {
int j = i;
myints.push_back(&j);
}
for (int i=0; i<myints.size(); i++) cout<<*(myints[i])<<endl;
Как компилятор справляется с этим?Я понимаю, что переменная j сама выходит из области видимости при выходе из цикла for, но будет целое число локально распределено N раз в стеке, так что объекты int, на которые указывают элементы в векторе, остаются действительными внепетля?
Большое спасибо!-берт