分配内存错误了...
#include<stdio.h>#include<malloc.h>
#include<stdlib.h>
struct s
{
int a; //存放有效数据//
struct s *zzy; //存放下一个节点的地址//
};
int main(void)
{
void lianbiao(struct s *tzz);
void sclianbiao(struct s *tzz);
struct s *tzz=(struct s *)malloc(sizeof(struct s));
lianbiao(tzz); //调用创建链表函数//
sclianbiao(tzz);//调用输出函数//
getch();
return 0;
}
void lianbiao(struct s *tzz) //创建创建链表函数//
{
void srlianbiao(struct s *tzz);
struct s *fplc=0,*syzz=tzz; //分别定义存放内存地址存放指针和上一节点地址//
int i,n;
printf("输入需要创建链表节点个数:\n ");
scanf("%d",&n);
for(i=0;i<n-1;i++)
{
fplc=(struct s *)malloc(sizeof(struct s)); //分配内存到变量fplc//
if(fplc==0); //判断内存分配是否正常 否者结束程序//
{
printf("分配内存错误!程序结束....");
exit(1); //结束程序//
}
syzz->zzy=fplc;
syzz=fplc;
}
fplc->zzy=0;
srlianbiao(tzz); //调用输入函数//
}
void srlianbiao(struct s *tzz)
{
struct s *a=tzz;
int f;
for(f=0;a!=0;f++)
{
printf("请输入第%d个节点数据域的值:",f);
scanf("%d",&a->a);
while(a->a<0)
{
printf("输入错误!请重新输入:");
scanf("%d",&a->a);
}
a=a->zzy;
}
}
void sclianbiao(struct s *tzz) //创建输出函数//
{
struct s *a=tzz;
int f;
for(f=0;a!=0;f++)
{
printf("第%d个节点数据域的值=%d\n",f,a->a);
a=a->zzy;
}
}
程序的第28行出错了,分配内存以后直接结束程序 我单独写一个分配内存的挒子 运行一切正常 但这个就是错了!!不可能每次调试系统都找不到合适的内存吧(几乎不可能)...
其他的地方还没调试过,不知道错没错 有错误的指点下吧~~