QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 694|回复: 3

指针的问题,多谢!!!!!!!!

[复制链接]
发表于 2003-4-12 09:57:17 | 显示全部楼层 |阅读模式
请诸位高手帮小弟看看这段代码有什么问题,总是有执行错误,多谢!!
#include<iostream.h>

typedef struct Node{
        char ch;
        Node *next;
};

void EnQueue(char ch,Node *head,Node *tail)
{
        Node *p=new Node;
        p-&gt;ch=ch;
        p-&gt;next=NULL;
        if(head!=NULL)
                tail-&gt;next=p;
        else
                head=p;
        tail=p;
        delete p;
        return;
}

void main()
{
        Node *head=new Node;
        Node *tail=new Node;
        head=NULL;
        tail=NULL;
        EnQueue('A',head,tail);
        cout&lt;&lt;head-&gt;ch;     //问题好像出在这句话,执行时,它说
                                                //0x00000000内存不能引用;

}
发表于 2003-4-12 10:41:33 | 显示全部楼层
在main中已经将head赋为NULL,而在function EnQueue中必须head不为NULL才对head进行赋值,结果head仍然为null,当然造成head->ch引用了0x00000000内存。

同时说一句:
Node *head=new Node;
Node *tail=new Node;
head=NULL;
tail=NULL;
以上语句直接造成了memory leak.
回复

使用道具 举报

 楼主| 发表于 2003-4-12 15:58:43 | 显示全部楼层
多谢多谢,以后还望多多指点。
回复

使用道具 举报

发表于 2003-4-14 13:47:09 | 显示全部楼层
you are welcome
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 05:23 , Processed in 0.084958 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表