Когда я запускаю следующий код C ++ из CodeBlocks в Windows, используя компилятор mingw, все в порядке. Но когда я запускаю его на Mac OS X, он не работает:
void func (vector<int> &v1, vector<vector< int *> > &v2);
int main()
{
vector<int> v1;
v1.push_back(0);
vector<vector <int *> > v2;
vector<int *> vTemp;
int x = 0;
int * ptr = &x;
vTemp.push_back(ptr);
v2.push_back(vTemp);
func(v1,v2);
cout<<*(v2[0][1])<<endl;
return 0;
}
void func (vector<int> &v1, vector<vector< int *> > &v2)
{
v1.push_back(1);
int *ptr = &(v1[1]);
v2[0].push_back(ptr);
cout<<*(v2[0][1])<<endl;
v1.push_back(2);
int *ptr2 = &(v1[2]);
v2[0].push_back(ptr2);
v1.push_back(3);
int *ptr3 = &(v1[3]);
v2[0].push_back(ptr3);
}
Я ожидаю (и получаю в Windows) вывод
1
1
Но на Mac я получаю
1
0
Кто-нибудь знает, почему это должно происходить?