核心:初始化之后當(dāng)容量等于數(shù)量后,開始操作:首先容量加10,再申請一塊更大的地址,標(biāo)記首地址,將原來滿了的數(shù)據(jù)傳入進去,之后釋放原來的空間,更換數(shù)組首地址,之后的數(shù)據(jù)傳入新數(shù)組,剛好原來容量數(shù)值等于超出的第一個數(shù)的下標(biāo),至此完結(jié)核心部分,后面函數(shù)封裝輸出即可。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)石嘴山,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108#include#include#includestruct kllll
{
//記錄首地址
int* p;
//記錄數(shù)量
int size;
//記錄容量
int rong;
};
void start(struct kllll *kh)
{
kh->rong = 5;
kh->p = malloc(sizeof(int) * kh->rong);
kh->size = 0;
}
void add(struct kllll* kh, int ishuju)
{
if (NULL == kh)
{
printf("參數(shù)錯誤");
return;
}
if (kh->rong == kh->size)
{
printf("滿了\n");
kh->rong += 10;
int *po =(int*)malloc(sizeof(int) * kh->rong);
if (NULL == po)
{
printf("錯誤");
return;
}
for (int i = 0; i< kh->size; i++)
{
po[i] = kh->p[i];
}
free(kh->p);
kh->p = po;
}
kh->p[kh->size] = ishuju;
kh->size++;
}
void shuchu(struct kllll* kh)
{
if (NULL == kh)
{
printf("參數(shù)錯誤");
return;
}
for (int j = 0; j< kh->size; j++)
{
printf("%d\n", kh->p[j]);
}
}
int main(void)
{
struct kllll h;
start(&h);
add(&h, 3);
add(&h, 3);
add(&h, 3);
add(&h, 3);
add(&h, 3);
add(&h, 3);
printf("%d\n%d\n", h.size, h.rong);
shuchu(&h);
free(h.p);
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧