c语言动态数组
标签:i++ lib index str 用户 scan return csharp dex
动态数组根据用户的需要开创空间 避免造成空间的浪费
#include
#include
typedef struct {
int *parrary;
int size;
}array;
array size(int intsize);
void afree(int *p);
int bigsmall(array *a);
int *at(array *a,int index);
void addtion(array *a,int add);
void main()
{
int i;
printf("请输入你需要开辟的空间大小(int)");
int b;
scanf("%d",&b);
array a=size(b);
printf("已经开辟了%d个字节\n",bigsmall(&a));
printf("address:%p\n",a.parrary);
int number=0;
while(1)
{
scanf("%d",at(&a,number++));
if(number==5)
{
break;
}
}printf("%d",*(at(&a,7)));
afree(a.parrary);
}
array size(int intsize)
{
array a;
a.size=intsize;
a.parrary=(int*)malloc(sizeof(int)*intsize);
a.size=intsize;
return a;
}
void afree(int *p)
{
free(p);
}
int bigsmall(array *a)
{
return a->size;
}
int *at(array *a,int index)
{
if(index>a->size)
{
addtion(a,1);
}
return &(a->parrary[index]);
}
void addtion(array *a,int add)
{
int *p=(int*)malloc((int)(a->size+add));
int i;
for(i=0;isize;i++)
{
p[i]=a->parrary[i];
}
free(a->parrary);
a->parrary=p;
a->size+=add;
}
c语言动态数组
标签:i++ lib index str 用户 scan return csharp dex
原文地址:https://www.cnblogs.com/qy00/p/13021446.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
c语言动态数组
文章链接:http://soscw.com/index.php/essay/39243.html
评论