次のサンプルコードがあります。グローバルポインタでローカル変数のアドレスを取得し、サブ関数でその内容を変更することが有効かどうかを知りたいだけです。次のプログラムは、変数aの値を正しく変更します。そのような練習は何か問題を引き起こす可能性がありますか?
#include <iostream>
#include <vector>
using namespace std;
vector<int*> va;
void func()
{
int b ;
b = 10;
int * c = va[0];
cout << "VALUE OF C=" << *c << endl;
*c = 20;
cout << "VALUE OF C=" << *c << endl;
}
int main()
{
int a;
a = 1;
va.push_back(&a);
func();
cout << "VALUE IS= " << a << endl;
return 0;
}