在c ++中定义类指针

时间:2011-12-03 15:55:53

标签: c++

#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;

帮帮我吧!

2 个答案:

答案 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();
}