level 4
边城高战
楼主
想弄的数组是需要一个存储单元就增加一个存储单元的那种,自己弄了一个,但是到第三次分配就出错了。求解释。。。
#include<stdio.h>
#include<malloc.h>
typedef int *ElemType;
void create(ElemType &a)//a[0]存储的是数组长度
{ a = (ElemType)malloc(sizeof(int));
a[0] = 0;
}
void insert(ElemType &a)
{
a = (ElemType)realloc(a,(a[0]+1)*sizeof(int));
a[0]++;
scanf("%d",&a[a[0]]);
}
void load(ElemType a)
{
int i;
for(i = 1;i <= a[0];i++)
printf("%d ",a[i]);
printf("\n");
}
int main()
{
int i,n;
ElemType a;
scanf("%d",&n);
create(a);
for(i = 1;i <= n;i++)
insert(a);
load(a);
printf("%d",a[0]);
return 0;
}
2013年06月16日 13点06分
1
#include<stdio.h>
#include<malloc.h>
typedef int *ElemType;
void create(ElemType &a)//a[0]存储的是数组长度
{ a = (ElemType)malloc(sizeof(int));
a[0] = 0;
}
void insert(ElemType &a)
{
a = (ElemType)realloc(a,(a[0]+1)*sizeof(int));
a[0]++;
scanf("%d",&a[a[0]]);
}
void load(ElemType a)
{
int i;
for(i = 1;i <= a[0];i++)
printf("%d ",a[i]);
printf("\n");
}
int main()
{
int i,n;
ElemType a;
scanf("%d",&n);
create(a);
for(i = 1;i <= n;i++)
insert(a);
load(a);
printf("%d",a[0]);
return 0;
}