struct Array{
int* p;
int size;
int capacity;
};
Array *create_array(int value){
Array *array=new Array;//定义一个新指针时,一定要记得初始化
//要么用已经定义了的变量的地址,要么new一个
array->size=array->capacity=1;
array->p=new int[array->capacity];
array->p[0]=value;//注意这种写法,结构体指针的内容套了一个指针并且指向动态数组
return array;
}
void push_back(Array* arr, int value){
if(arr->size==arr->capacity)
{
arr->capacity<<=1;
int *temp=new int[arr->capacity];
for(int i=1;i<=arr->size;i++) temp[i-1]=arr->p[i-1];
delete []arr->p;//注意这种写法,对一个结构体里面的动态数组进行撤销
arr->p=temp;
}
arr->p[arr->size++]=value;
}
void pop(Array *arr){
arr->size--;
}
int get_size(Array *arr){
return arr->size;
}
int get_capacity(Array *arr){
return arr->capacity;
}
指针好题(考试前可复习)
发布时间 2023-11-30 00:05:15作者: 最爱丁珰