关于链表,向高手求助

Gengoo 2008-04-17 08:39:41


头文件
#include <iostream.h>

struct CNode
{
int nNode;
CNode *pNext;
};

class PNode
{
public:
int CNodeCount; //节点数量
CNode *pHeadNode; //节点
public:

int InitData();
int WriteToFile(char *sFile);
int ReadToNode(char *sFile);
int DestNode();

void printfNode();

PNode()
{
CNodeCount = 0;
pHeadNode = NULL;
}
~PNode()
{
}

};

源文件
#include "test.h"
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>


int PNode::InitData()
{

pHeadNode = new CNode; //单步跟踪到这时就出问题了,这是什么原因,应该怎样写

int value;

while (cin >> value && value != 0)
{
}

return 0;
}

void main()
{
PNode *pNode;
pNode->InitData();
}

...全文
64 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gengoo 2008-04-19
  • 打赏
  • 举报
回复
非常感谢4楼的建议,但因这次前面大侠已给出正确答案,只能给他们分了,再次谢谢大家
Learn-anything 2008-04-19
  • 打赏
  • 举报
回复
ding
最木夫 2008-04-19
  • 打赏
  • 举报
回复
发分吧。
最木夫 2008-04-18
  • 打赏
  • 举报
回复
void main()
{
PNode *pNode;
pNode->InitData();
}

出现这样的错误是正常的,不过需要养成一个编程习惯,
1.指针定义给初值
PNode* pNode = NULL;

2.指针调用最好使用Assert
assert(pNode != NULL)
pNode->InitData();

这个是刚开始学习的人最应该记住的,其他的地方慢慢积累。
Gengoo 2008-04-17
  • 打赏
  • 举报
回复
哎,一语惊醒梦中人,非常感谢两位的解答,忘了给类的指针分配空间就直接使用了.
c_spark 2008-04-17
  • 打赏
  • 举报
回复
void main()
{
PNode *pNode; //PNode pNode; 结构体指针并没有在内存中产生空间,而你又使用了其方法...
pNode->InitData(); //pNode.InitData();
}

tgh621 2008-04-17
  • 打赏
  • 举报
回复
void main()
{
PNode *pNode;
pNode->InitData();
}
改为
void main()
{
PNode *pNode=new PNode();
pNode->InitData();
}
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-04-17 08:39
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下