我对 C++ 很陌生,我一直在玩指针和类。我遇到了一个问题,到目前为止我还没有找到解决方案:
RAII.exe 中 0x77F87508 (msvcr110d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xCCCCCCC0。
这似乎与我访问一个我无权访问的指针有关。
主要.cpp:
#include <memory>
#include <iostream>
#include "Example.hpp"
void example()
{
Example e;
}
int main()
{
example();
std::cout << "Press any key to exit";
std::cin.get();
return 0;
}
示例.cpp:
#include "Example.hpp"
Example::Example()
{
m_a = new int(1);
m_b = new int(2);
m_b = new int(3);
}
Example::~Example()
{
delete m_a;
delete m_b;
delete m_c;
}
示例.hpp:
#ifndef _EXAMPLE_HPP_
#define _EXAMPLE_HPP_
#include <memory>
#include <iostream>
class Example
{
private:
int *m_a;
int *m_b;
int *m_c;
public:
Example();
~Example();
};
#endif _EXAMPLE_HPP_
所以,我基本上做的是在构造函数中分配内存并在析构函数中释放它。
欢迎任何帮助!先谢谢了