作者在 2011-03-08 22:14:51 发布以下内容
Run-Time Check Failure #3 - The variable 'l' is being used without being initialized.
运行程序 出来以上字句。。倍感无奈。。。望高手稍加指点;
程序代码如下:
#include <stdio.h>
#include <malloc.h>
#define list_init_size 5 //容量
#define listincrement 5 //追加量
typedef struct
{
int *elem;
int listsize;
int length; //长度
}sqlist;
#include <malloc.h>
#define list_init_size 5 //容量
#define listincrement 5 //追加量
typedef struct
{
int *elem;
int listsize;
int length; //长度
}sqlist;
void init (sqlist l)
{
l.elem=(int *)malloc(list_init_size * sizeof(int));
if(!l.elem)
printf("overflow");
else{
l.length=0;
l.listsize=list_init_size;
}
}
{
l.elem=(int *)malloc(list_init_size * sizeof(int));
if(!l.elem)
printf("overflow");
else{
l.length=0;
l.listsize=list_init_size;
}
}
void listinsert (sqlist l)
{
int m;
int i,j;
int *newbase;
printf("请问顺序表中共有多少个数据:\n");
scanf("%d",&m);
if(m>=l.listsize)
{
i=m/5;
for(j=0;j<i;j++)
{
newbase=(int *)realloc(l.elem,(l.listsize+listincrement)*sizeof(int));
if(!newbase)
printf("overflow");
else
{
l.elem=newbase;
l.listsize=listincrement;
}
}
}
printf("请输入数据:\n");
for(i=0;i<l.listsize;i++)
{
scanf("%d",&(l.elem[i]));
l.length++;
}
}
{
int m;
int i,j;
int *newbase;
printf("请问顺序表中共有多少个数据:\n");
scanf("%d",&m);
if(m>=l.listsize)
{
i=m/5;
for(j=0;j<i;j++)
{
newbase=(int *)realloc(l.elem,(l.listsize+listincrement)*sizeof(int));
if(!newbase)
printf("overflow");
else
{
l.elem=newbase;
l.listsize=listincrement;
}
}
}
printf("请输入数据:\n");
for(i=0;i<l.listsize;i++)
{
scanf("%d",&(l.elem[i]));
l.length++;
}
}
void reverse (sqlist l)
{
int i=0,j=0,k=0,t=0;
i=l.length-1;
k=(i+1)/2;
for(j=0;j<k;j++)
{
t=l.elem[j];
l.elem[j]=l.elem[i-j];
l.elem[i-j]=t;
}
}
{
int i=0,j=0,k=0,t=0;
i=l.length-1;
k=(i+1)/2;
for(j=0;j<k;j++)
{
t=l.elem[j];
l.elem[j]=l.elem[i-j];
l.elem[i-j]=t;
}
}
void show (sqlist l)
{
int i=0;
for(i=0;i<l.length;i++)
{
printf("%3d",l.elem[i]);
}
}
{
int i=0;
for(i=0;i<l.length;i++)
{
printf("%3d",l.elem[i]);
}
}
void main()
{
sqlist l;
init(l);
listinsert(l);
printf("原顺序表为:\n");
show(l);
reverse(l);
printf("逆置后的顺序表为:\n");
show(l);
{
sqlist l;
init(l);
listinsert(l);
printf("原顺序表为:\n");
show(l);
reverse(l);
printf("逆置后的顺序表为:\n");
show(l);
}