0
我有我的Visual C++ 2010代碼是這樣的:被交換的成員值
struct Foo
{
Foo(int arg1, int arg2..)
{
var1=arg1;
var2=arg2;
...
};
int var1;
int var2;
...
};
struct Bar
{
Bar(){};
vector<Foo*> foos
}
vector<Bar> bars;
我通過迭代的酒吧,然後通過酒吧[] FOOS,然後做與富貴成員的東西。問題是,有時我得到var1,var2 ...的值的順序錯誤。
這隻發生在發佈配置;這也不會發生如果Foo的構造函數看起來像這樣: Foo(arg1 ...):var1(arg1)...
我想了解發生了什麼,爲什麼。
你是說'var1'和'var2'得到*不正確的*值,或者這些值是正確的,但以意外的順序設置? – NPE
值是正確的,如果我直接查詢它們,它們也顯示爲正確的順序。這隻會發生,如果我通過指針得到這些值。 – user2923240
這很可能是您在某些指針算術中犯了錯誤。如果您懷疑有編譯器錯誤,您需要提供一個簡短的自包含的repro來展示該問題。用幾行僞代碼來診斷這類問題是不可能的。 –