C++指针

hellobabay 2011-10-29 12:34:29
#include <iostream.h>
typedef struct stacknode
{
int point;
struct stacknode *next;
}StackNode;
typedef struct
{
StackNode *top;
}LinkStack;








void InitStack(LinkStack *s)
{
s->top=NULL;

}

bool StackEmpty(LinkStack *s)
{
if(s->top==NULL)
return true;
else
return false;
}

void Push(LinkStack *s, int p)
{
StackNode *oldtOP=s->top;
StackNode stackNode;
stackNode.point=p;
stackNode.next=oldtOP;
s->top=&stackNode;
cout<<s->top<<" ";
cout<<s->top->point<<" Push "<<endl;

}


void Pop(LinkStack *s)
{
cout<<s->top<< " ";
cout<<s->top->point<<" Pop "<<endl;
// StackNode *oldtOP=s->top;
// s->top=oldtOP->next;


}



void main()
{

LinkStack linkStack;
int start=5;
InitStack(&linkStack);
Push(&linkStack,start);
cout<<linkStack.top->point<<" ";
Pop(&linkStack);
}

为什么cout<<s->top->point<<" Push "<<endl;和cout<<s->top->point<<" Pop "<<endl;不是相同的值


...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
quwei197874 2011-10-29
  • 打赏
  • 举报
回复
栈是后进先出
s_hhm 2011-10-29
  • 打赏
  • 举报
回复
二楼正解.在局部函数的所有变量,在函数执行完毕后,都得被释放.楼主那样做,没出错非法内存访问就不错了.
龙哥依旧 2011-10-29
  • 打赏
  • 举报
回复

#include <iostream>

using namespace std;

typedef struct stacknode
{
int point;
struct stacknode *next;
}StackNode;

typedef struct
{
StackNode *top;
}LinkStack;

void InitStack(LinkStack *s)
{
s->top=NULL;

}

bool StackEmpty(LinkStack *s)
{
if(s->top==NULL)
return true;
else
return false;
}

void Push(LinkStack *s, int p)
{
StackNode *oldtOP=s->top;
StackNode *pstackNode = new StackNode;
pstackNode->point=p;
pstackNode->next=oldtOP;
s->top=pstackNode;
cout<<s->top<<" ";
cout<<s->top->point<<" Push "<<endl;
}

void Pop(LinkStack *s)
{
if(StackEmpty(s))
return;

StackNode *oldtOP = NULL;

oldtOP=s->top;
s->top = s->top->next;

cout<<oldtOP<<" "<<oldtOP->point<<" Pop "<<endl;

delete oldtOP;
oldtOP = NULL;
}

void main()
{
LinkStack linkStack;

InitStack(&linkStack);
Push(&linkStack,5);
Push(&linkStack,6);
Push(&linkStack,7);
Push(&linkStack,8);

cout<<linkStack.top->point<<" \n";

Pop(&linkStack);
}


局部变量函数运行完就没了,得动态申请内存。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧