c语言动态数组

2020-12-30 08:30

阅读:451

标签: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


评论


亲,登录后才可以留言!