百鸡问题c 语言编程,百鸡问题c语言_c语言一个问题

问题补充:

我有以下一个c语言程序:

#include #include "ctest.h"typedef struct person{ unsigned int node; int age;}prs;void main(){ sli* list = NULL; prs p1,p2,p3,p4,p5; prs *tmp; int ret1,ret2,ret3,ret4,ret5,i; p1.age=23; p2.age=25; p3.age=22; p4.age=21; p5.age=27; list=slcreat(); ret1 = slinsert(list,(unsigned int)(&p1),0); ret2 = slinsert(list,(unsigned int)(&p2),0); ret3 = slinsert(list,(unsigned int)(&p3),0); ret4 = slinsert(list,(unsigned int)(&p4),0); //ret5 = slinsert(list,(unsigned int)(&p5),0); for(i=0;iage); } clear(list); printf("hello\n");}

以下是ctest.h程序内容:

typedef struct slist{ int size; unsigned int *node; }sli;sli* slcreat(){ sli *tmp=NULL; tmp=malloc(sizeof(sli)); tmp->node=(unsigned int *)malloc(sizeof(unsigned int *)); tmp->size=0; return tmp; }int slinsert(sli* insertsl,unsigned int* sn,int pos){ int i=0; if(insertsl->size!=0) { for(i=insertsl->size;i>pos;--i) { insertsl->node[i]=insertsl->node[i-1]; } } insertsl->node[i]=sn; ++insertsl->size; return insertsl->node[i];}unsigned int get(sli* sourcesl,int pos){ return sourcesl->node[pos];}int size(sli* sourcesl){ return sourcesl->size;}void clear(sli* sourcesl){ sourcesl->size=0;}int delete(sli* deletesl,int pos){ int i=0,ret=0; ret=deletesl->node[pos]; for(i=pos;isize-1;--i) { deletesl->node[i]=deletesl->node[i+1]; } --deletesl->size; return ret;}

以上的程序运行正常没问题,但是我把//ret5 = slinsert(list,(unsigned int)(&p5),0); 这行前面的//去掉后,运行时候程序中断,为什么?我只是在list中增多一个数据就运行中断了,程序出了什么错误,请各位高手指教?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值