您的位置:首页 > 其它

动态分配内存

2008-03-28 11:46 453 查看
#define Malloc(count,type) (type *)malloc(sizeof(type)*(count))

typedef struct A{
int *a;
int size;
int count;
}Arr;

void Init(Arr *arr)//初始话
{
arr->count=-1;
scanf("%d",&arr->size);

assert(arr->size>0);

arr->a=Malloc(arr->size,int);
if(arr->a==NULL)
{
printf("malloc error!");
}

printf("malloc ok!");
}

void Add(Arr *arr,const int &data)//添加
{
if(arr->count+1>=arr->size)//内存不足
{
int RealSize=arr->size*(sizeof(int))+2*(sizeof(int));
realloc(arr->a,RealSize);
arr->size+=2;
}

arr->count++;
arr->a[arr->count]=data;
}

void Print(Arr arr)
{
for(int i=0;i<=arr.count;i++)
{
printf("%d-",arr.a[i]);
}
}

void Destory(Arr arr)
{
if(arr.a!=NULL)
free(arr.a);
}

int main(array<System::String ^> ^args)
{
Arr arr;

Init(&arr);

printf("Add");

Add(&arr,4);
Add(&arr,5);
Add(&arr,1);
Add(&arr,3);
Add(&arr,8);

printf("Print");
Print(arr);

Destory(arr);

getchar();
getchar();
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: