>>18
cout << "\nnvtab.nameval[" << "0" << "].value=" << nvtab.nameval[0].value << '\n';
cout << "\nnvtab.nameval[" << "1" << "].value=" << nvtab.nameval[1].value << '\n';
↓
cout << nvtab.nameval << endl;
//cout << "\nnvtab.nameval[" << "0" << "].value=" << nvtab.nameval[0].value << '\n';
//cout << "\nnvtab.nameval[" << "1" << "].value=" << nvtab.nameval[1].value << '\n';
にして実行してみて。

もし 0x00000000 が出力されたとすれば nvtab の実体が複数あるのが原因