91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

自己動手寫編譯器、鏈接器 (隨書源碼)

資源截圖

代碼片段和文件信息

//?《自己動手寫編譯器、鏈接器》配套源代碼

#include?“scc.h“

/***********************************************************
?*??功能: 重新分配動態數組容量
?*??parr: 動態數組指針
?*??new_size: 動態數組最新元素個數
?**********************************************************/
void?dynarray_realloc(DynArray?*parr?int?new_size)
{
????int?capacity;
????void?*data;

????capacity?=?parr->capacity;
????while?(capacity?????????capacity?=?capacity?*?2;
????data?=?realloc(parr->data?capacity);
????if?(!data)
????????error(“內存分配失敗“);
????parr->capacity?=?capacity;
????parr->data?=?data;
}

/***********************************************************
?*??功能: 追加動態數組元素
?*??parr: 動態數組指針
?*??data: 所要追加的新元素
?**********************************************************/
void?dynarray_add(DynArray?*parr?void?*data)
{
? int?count;
????count?=?parr->count?+?1;
????if?(count*sizeof(void*)?>?parr->capacity)
????????dynarray_realloc(parr?count*sizeof(void*));
????parr->data[count?-?1]?=?data;
????parr->count?=?count;??
}

/***********************************************************
?*?功能: 初始化動態數組儲存容量
?*?parr: 動態數組指針
?*?initsize: 動態數組初始化分配空間
?**********************************************************/
void?dynarray_init(DynArray?*parr?int?initsize)
{
if(parr?!=?NULL)
{
parr->data?=?(void**)malloc(sizeof(void*)*initsize);
parr->count?=?0;
parr->capacity?=?initsize;
}
}


/***********************************************************
?*??功能: 釋放動態數組使用的內存空間
?*??parr: 動態數組指針
?**********************************************************/
void?dynarray_free(DynArray?*parr)
{
????void?**p;
????for?(p?=?parr->data;?parr->count;?++p?--parr->count)
????????if?(*p)
????????????free(*p);
????free(parr->data);
????parr->data?=?NULL;
}

/***********************************************************
?*??功能: 動態數組元素查找
?*??parr: 動態數組指針
?*??key: 要查找的元素
?**********************************************************/?????????????????????????????????????????????
int?dynarray_search(DynArray?*parr?int?key)
{????????????????????????????????????????????
????int?i;
??? int?**p;
p?=?(int**)parr->data;
????for?(i?=?0;?i?count;?++i?p++)????????????
????if?(key?==?**p)????????????????
????????return?i;????????????????????????????
????return?-1;???????????????????????????????
}?????????

評論

共有 條評論