head.next->data);可以打印出入栈的数据,在main里面调用push后,用 //printf("Head:%dn", *(in....">

当前位置:  技术问答>linux和unix

求助,帮忙看看为什么无法打印数据。

    来源: 互联网  发布时间:2016-12-20

    本文导语:  用链表封装一个栈,push写完想测试一下入栈,结果发现在push内用 //printf("Head:%dn", *(int *)handle->head.next->data);可以打印出入栈的数据,在main里面调用push后,用 //printf("Head:%dn", *(int *)handle->head.next->data);打印却发现提...

用链表封装一个栈,push写完想测试一下入栈,结果发现在push内用 //printf("Head:%dn", *(int *)handle->head.next->data);可以打印出入栈的数据,在main里面调用push后,用 //printf("Head:%dn", *(int *)handle->head.next->data);打印却发现提示段错误,估计传参没写好,就是找不出来,各位帮帮忙。

  4 struct node_t{
  5     void *data;
  6     struct node_t *next;
  7     struct node_t *prev;
  8 };
  9 
 10 typedef struct Stack_List{
 11    struct node_t head;
 12    int size;
 13    int max;
 14    int op;
 15 }stack;



    int stack_list_push(stack *handle, void *data)
 80 {
 81     int i;
 82     struct node_t *tmp;
 83 
 84     if(handle->op == handle->max)
 85         return;
 86 
 87     struct node_t *new = NULL;
 88     new = (struct node_t *)malloc(sizeof(struct node_t));
 89     ERR(NULL == new, goto ERR1);    //容错
 90 
 91     new->data = (void *)malloc(handle->size);
 92     ERR(NULL == new->data, goto ERR2);  //容错
 93 
 94     memcpy(new->data, data, handle->size);
 95
        handle->head.prev->next = new;
11
119     new->next = &handle->head;
12
121     new->prev = handle->head.prev;
12
123     handle->head.prev = new;
124 

126     handle->op += 1;
127 //printf("Head:%dn", *(int *)handle->head.next->data);
128 ERR2:
129     free(new);
130 ERR1:
131     return -1;
132 }

    int main(void)
 12 {
 13     stack *handle = NULL;
 14     handle = stack_list_create(sizeof(int), 1000);
 15 PRERR(1);
 16     int n = 10;
 17     
 18    stack_list_push(handle, &n);
 19 
 20 
 21    printf("%dn", *(int *)(handle->head.next->data)); //打印不出来,段错误

|
在127行增加retutn 0或删除129行

|

程序顺序走的,不return一直走到底

|
第18行:stack_list_push(handle, &n);
这个函数的 第一个参数应该使用指针的指针才能传入正确的值:

stack **handle = NULL;
stack_list_push(&handle, &n);

,将原型和调用出都改掉试试吧

|
你也可以在第18行加一个打印信息看看handle指针是否为NULL
printf(“handle = %pn”,handle);
你在打印处出的错估计就是指针的问题

    
 
 

您可能感兴趣的文章:

  • 求助:linux系统断电后无法正常启动
  • 求助redhat 企业版网卡无法加载
  • 求助,ADS调试中断2440无法进入中断服务。。。
  • 求助: RedHat as4 内网正常,无法访问外网的问题!
  • 我的linux下无法进行console图形编程,求助!!!
  • 求助:squid无法正确代理POST页面
  • 求助关于linux下无法使用curses.h类问题
  • 故障求助:linux系统无法向磁盘写入文件
  • 菜鸟求助:linux虚拟机无法mount主机目录
  • 求助,无法删除某个目录
  • 编程语言 iis7站长之家
  • 求助:用VMware时无法进入虚拟系统
  • 在线求助:root登录本地登录无法桌面,黑屏;但是其他用户可以登录桌面
  • 求助samba配置问题,windows无法访问linux共享的资源
  • 求助:虚拟机下安装linux的问题,无法在图形界面下安装。
  • 求助高手,在VMware环境下安装完RedHat 9.0之后无法激活网卡
  • 在线求助:苹果机无法启动!!
  • 邮件无法打包下载,求助!
  • crontab无法启动shell脚本,求助!
  • 求助:Fedora6 Telnet服务启动成功,但是无法连接
  • 求助~~各位兄台帮帮忙!!感恩!!
  • 帮忙,求助!!
  • 急需jbuilder!!!!大侠帮忙!(高分求助)
  • 求助,各位大虾帮忙
  • 求助!高手帮忙
  • 求助文件操作中修改文件中字段的问题,请大家帮忙解决
  • 求救!!已经在好几个版求助了,大家帮帮忙啊!
  • 求助,急!高手请帮帮忙!
  • 紧急求助,关于kill进程 , 大家帮帮忙啊 !!!
  • [求救]新手有问题求助,谢谢帮忙!
  • 求助!!多谢帮忙!Linux上CPU的问题。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助!!关于两行代码的理解问题!请大虾近来看看!!(在线等待)
  • 求助!!关于两行代码的理解问题!请大虾近来看看!!
  • 求助!!程序错误!请大虾近来看看!!
  • 紧急求助!!!大家帮我看看!!急急急急!在线等!
  • 求助:一个makefile,大虾们进来看看
  • 【求助】快来人呐~!大家帮我看看我写的破代码哈!
  • 求助:各位大哥请帮我看看这段小程序是错在哪里?谢谢!
  • 大家看看:有点纳闷,为什么linux下的参数那么多重复的?那么多求助的方式?比如一会儿用--help一会儿又是-help一会儿又变成/?了
  • 求助linux普通用户下内存共享(系统V共享)大家进来看看啊!急!!
  • [求助]求程序的思路,请大家进来看看
  • 菜鸟求助system("cmd")的使用问题,急!!达人们帮忙看看,万分感谢!!
  • 求助:多线程编程死锁,帮忙看看程序!
  • 求助关于静态数据初始化问题,很简单的,快进来看看。
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3