| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 799 人关注过本帖
标题:栈初始化问题
取消只看楼主 加入收藏
rs369007
Rank: 2
等 级:论坛游民
帖 子:30
专家分:11
注 册:2009-2-25
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:0 
栈初始化问题
疑问:在学习数据结构(参考高教社 和严蔚敏两版),有个疑问,各种数据结构 初始化函数里几乎都没有对指向数据结构的指针本身初始化,编译也不会报错(TC 还有Cfree编译均能通过)
学习指针,都强调指针必须初始化,才能使用,但是在指针作为参数传递时,似乎却不管用了

typedef struct Node{
     int data;
     struct Node *next;
}LinkQueueNode;

typedef struct{
    struct Node *front;
    struct Node *rear;
}LinkQueue;

初始化链队函数里  直接 Q->font= ..malloc(..);  并没对Q进行初始化

又如栈初始化函数,也并没有对S初始化,但是确实正确的
Void InitStack(Seqstack *S)
{
    S->top=-1;
}

下面程序展示了小弟的疑问,小弟那里理解错了,还望达人指点
#include<stdio.h>
#include<stdlib.h>
typedef struct{
    char elem[10];
    int top;
}Seqstack;//栈存储结构

void InitStack(Seqstack *S)          ——>改成:                  void InitStack(Seqstack *S)         
{                                                                 {
    Seqstack *P;                                                          S->top=-1;//这样却能通过编译 难道这里S被编译器自动初始化了吗
    P->top=-1;//这里会出现内存写错误(cfree 会报错)              }                                          
}
main()
{
    Seqstack *S;
    InitStack(S);
                                                                        printf("%d ",S->top);
    system("pause");
    return 0;
}



[ 本帖最后由 rs369007 于 2009-11-1 19:22 编辑 ]
2009-11-01 17:30
快速回复:栈初始化问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057617 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved