可变数组
来源:互联网 发布:网络语言暴力 例子 编辑:程序博客网 时间:2024/05/16 08:36
头文件
#ifndef _ARRAY_H_#define _ARRAY_H_typedef struct{int *array;int size;} Array;Array array_create(int init_size);//创建数组void array_free(Array *a);//释放数组int arry_size(const Array *a);//数组元数int* array_at(Array *a,int index);//查找数组void array_inflate(Array *a,int more_size);//增加数组元数#endif
主程序
#include<stdio.h>#include"array.h"#include<stdlib.h>const BLOCK_SIZE=20Array array_create(int init_size){Array a;a.size=init_size;a.array=(int*)malloc(sizeof(int)*a.size);return a; }void array_free(Array *a){free(a->array);a->array=NULL;a->size=0;}int arry_size(const Array *a){return a->size;}int* array_at(Array *a,int index){if(index>=a->size){array_inflate(a,(index/BLOCK_SIZE+1)*BLOCK_SIZE-a->size);}return &(a->array[index]);}int array_get(const Array *a,int index){return a->array[index];}int array_set( Array *a,int index,int value){ a->array[index]=value;}void array_inflate(Array *a,int more_size){int *p=(int*)malloc(sizeof(int)*(more_size+a->size));int i;for(i=0;i<a->size;i++){p[i]=a->array[i];}free(a->array);a->array=p;a->size+=more_size; }int main(){Array a=array_create(100);printf("%d\n",arry_size(&a));* array_at(&a,0)=10;printf("%d\n",*array_at(&a,0));int number=0;int cnt=0;while(number!=-1){scanf("%d",&number);if(number!=-1)* array_at(&a,cnt++)=number;}array_free(a);}
0 0
- 可变数组
- [可变数组]
- [可变数组]
- 可变数组
- 可变数组
- 可变数组
- 可变数组
- 可变数组
- 可变数组
- ArrayList可变数组
- ArrayList:可变数组
- 可变大小数组
- 数组的 可变参数
- FORTRAN 编译 可变数组
- oracle 可变数组
- Oracle之可变数组
- java 可变数组参数
- Objective-C 可变数组
- AndroidStudio中使用AndroidAnnotation的简单介绍
- struts 的解耦和方式
- 文件I/O实践(3) --文件共享与fcntl
- 【Qzone】这个比较有趣 总结一下笔记
- 微信小程序取代App?Android和iOS会失业?大可不必慌张
- 可变数组
- struts 和servlet APi的耦合方式
- 81. Search in Rotated Sorted Array II
- explain、profile
- UNIX命令行基础(一)
- windows消息处理
- 霍夫曼编码(Huffman Coding)
- 搭建caffe环境时“error: hdf5.h”找不到的解决方法
- 打印完全平方数