#include <iostream>
#include <string>
#include <list>
#include <conio.h>
using namespace std;
class people
{
public:
people* p;
int x;
people();
};
people::people()
{
p = NULL;
}
void main()
{
people jax;
jax.p->x = 1;
}
我收到了这个错误
classarray.exe中0x00361419处的未处理异常:0xC0000005:访问冲突写入位置0x00000004。
在这一行
jax.p->x = 1;
帮帮我吧!
答案 0 :(得分:2)
你需要为人们保留记忆:
void main()
{
people jax;
jax.p=new people;
jax.p->x = 1;
...
delete jax.p;
}
编辑: 最后你需要释放你的记忆,否则你的内存就会泄漏。
答案 1 :(得分:1)
其他方法是为内部指针初始化实现特殊功能:
void people::init_p()
{
if(!p) p = new people();
}