arraylist.c

来自「NAT打洞」· C语言 代码 · 共 30 行

C
30
字号
#include "arraylist.h"

ARRAYLIST *arraylist(void){
  ARRAYLIST *res = (ARRAYLIST *)malloc(sizeof(ARRAYLIST));
  res->list = (ARRAYLIST_ITEM *)malloc(sizeof(ARRAYLIST_ITEM));
  memset(res->list, 0, sizeof(ARRAYLIST_ITEM));
  return res;
}

void arraylist_add(ARRAYLIST *al, char *obj){
	al->list = (ARRAYLIST_ITEM *)realloc(al->list, (al->list[0].size + 1) * sizeof(ARRAYLIST_ITEM));
  memset(&al->list[al->list[0].size + 1], 0, sizeof(ARRAYLIST_ITEM));
  al->list[0].size++;
  al->list[al->list[0].size].item.value = obj;

}

unsigned arraylist_size(ARRAYLIST *al){
	return al->list[0].size;
}

char *arraylist_get(ARRAYLIST *al, unsigned index){
	return al->list[index + 1].item.value;
}

void arraylist_set(ARRAYLIST *al, unsigned index, char *obj){
	al->list[index + 1].item.value = obj;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?