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'? –