#include#include #include #define datatype intstruct array{ datatype *pstart;//数组首地址 int length;//长度 int sortstat;//有序或者无序 0 无序 1 有序};void init(struct array *parr);void initwithdata(struct array *parr,datatype data);void initwitharray(struct array *parr,datatype *pdata,int datalength);void show(struct array *parr);void addobject(struct array *parr,datatype data);void addobjects(struct array *parr,datatype *pdata,int datalength);void main(){ struct array mydata; int a[10] = { 1,2,3,4,5,6,7,8,9,10}; int b[6] = { 11,12,13,14,15,16}; int c[5] = { 17,18,19,20,21}; initwitharray(&mydata,a,10); show(&mydata); addobjects(&mydata,b,6); show(&mydata); addobjects(&mydata,c,5); show(&mydata);}void init(struct array *parr){ parr->pstart = NULL; parr->length = 0; parr->sortstat = 0;}void initwithdata(struct array *parr,datatype data){ parr->pstart=(datatype *)(sizeof(datatype)); *(parr->pstart) = data; parr->length = 1; parr->sortstat = 0;}void initwitharray(struct array *parr,datatype *pdata,int datalength){ parr->pstart= (datatype *)malloc(sizeof(datatype)*datalength); memcpy(parr->pstart,pdata,sizeof(datatype)*datalength); parr->length = datalength; parr->sortstat = 0;}void show(struct array *parr){ if(parr == NULL || parr->pstart == NULL || parr->length == 0) { printf("没有"); return; } else { printf("\n数组此时状态\n"); for(int i=0;i length;i++) { printf("%4d",parr->pstart[i]); } } printf("\n");}void addobject(struct array *parr,datatype data){ if(parr != NULL) { if(parr->pstart == NULL || parr->length == 0) { initwithdata(parr,data); } else { parr->pstart = (datatype *)realloc(parr->pstart,parr->length*sizeof(datatype)+sizeof(datatype)); parr->pstart[parr->length] = data; parr->length++; } } else { printf("%s","addobject error"); }}void addobjects(struct array *parr,datatype *pdata,int datalength){ if(parr != NULL) { if(parr->pstart == NULL || parr->length == 0) { initwitharray(parr,pdata,datalength); } else { parr->pstart = (datatype *)realloc(parr->pstart,parr->length*sizeof(datatype)+datalength*sizeof(datatype)); memcpy(parr->pstart+parr->length,pdata,datalength*sizeof(datatype)); parr->length += datalength; } } else { printf("%s","addobjects error"); } }