将指针作为参数分配给类变量,然后使用它抛出读取访问违规
Assigning pointer as argument to class variable and then using it throws read access violation
我不知道我给出的是足够的信息,但是因为我不知何故我想我可能会问。
我有类似的设置:
class A
{
public:
SomeClass* someClass;
A(SomeClass* someClass) : someClass(someClass) {}
void DrawFunction()
{
someClass->DoSomething(); // <-- Read Access Violation
}
}
出于某种原因,它会引发读取访问违规行为,据我所知,原始SomeClass
仍然存在。我可以像在构造函数中一样使用它,但由于某种原因而不能在绘制功能中使用。
要注意的一件事是,DrawFunction
在另一个线程中,但是在同一线程中,我在其他地方使用SomeClass
。
我的代码有什么问题,还是我需要提供更多代码才能查看它有什么问题?
也许是无公共的DoSomething
方法?例如这样:
class Foo {
void DoSomething(){}
protected:
void DoOtherthing(){}
}
如果您将尝试访问foo类外的DoSomething
或DoOtherthing
,而从friend
中则没有类似的错误。
您有资源争议。由多个线程访问的资源someClass
。使用someClass
(共享资源(等同步结构,例如mutex
,semaphore
等。
相关文章:
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 读取访问冲突.这0xCDCDCDCD
- 尝试通过共享指针使用变量时读取访问冲突
- C++ 读取访问冲突,0xCDCDCDCD
- 从二进制文件中读取元素时引发异常(引发异常:读取访问冲突. _Pnext 0xB414D4)
- 使用智能指针读取访问冲突
- 引发异常:读取访问冲突.**此**0x40错误
- 函数 AfxEndThread 中的读取访问冲突"pThread-> was nullptr"
- Visual Studio图形调试器引发读取访问冲突异常
- C++中的内存分配(引发异常:读取访问冲突)
- 引发异常:读取访问冲突 [C++]
- 尝试从单向链表C++中删除单个节点时出现读取访问冲突
- 引发未经处理的异常:简单 C++ 程序中的读取访问冲突,动态增加数组长度以存储数字
- 错误 : 异常 : 引发未处理的异常: 读取访问冲突.0xDDDDDDDD临时温度
- 读取访问冲突. _Mycont 在 C++ 中将 udp 数据放入向量时出现 nullptr 错误
- 读取访问冲突0xCDCDCDCD
- Vector::p ush_back() 给出读取访问冲突
- 访问共享内存时出现读取访问冲突
- 挂钩创建文件抛出异常:读取访问冲突
- 在字符串驱动器中读取访问违规