struct SomeStruct{
int someValue;
};
vector<SomeStruct *> vec;
int getSomeValue(){ // Gets called from another thread
return vec[0]->someValue;
}
int main(){
SomeStruct *structure = &SomeStruct();
structure->someValue = 42;
vec.push_back(structure);
}
我有這樣的代碼。問題是,當我打電話return vec[0]->someValue
在getSomeValue()
從另一個線程調用,VS說:「訪問衝突」,並打開memcpy.asm
文件。無法從另一個線程訪問指針?
所以我在想我自己,我不能訪問在不同線程中創建的指針,這對我來說聽起來有點尷尬。
問題在哪裏?
'SomeStruct * structure;'聲明一個未初始化的指針。 –
已編輯。對不起:) –
目前,它不是有效的代碼。在SomeStruct()之前是否缺少'new'? –