📄 lists.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include "lists.h"
xpand_list_Strings *Strings_CreateList(int initialLen)
{
xpand_list_Strings *tempPtr;
if (initialLen < 1)
{
initialLen = 10;
}
tempPtr = (xpand_list_Strings *) malloc(sizeof(xpand_list_Strings));
if (tempPtr)
{
tempPtr->list = (char **) malloc(sizeof(char *) * initialLen);
if (!tempPtr->list)
{
return 0;
}
tempPtr->nused = 0;
tempPtr->size = initialLen;
}
else
{
fprintf(stderr, "Could not allocate memory for expanding list\n");
}
return tempPtr;
}
int Strings_AddItem(xpand_list_Strings *listPtr, char *newItem)
{
if (listPtr->nused == listPtr->size)
{
if (listPtr->size < 1)
listPtr->size = 1;
listPtr->size *= 2;
listPtr->list = (char **) realloc(listPtr->list,
sizeof(char *) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
}
listPtr->list[(listPtr->nused)++] = newItem;
return 0;
}
int Strings_ShrinkToFit(xpand_list_Strings *listPtr)
{
listPtr->size = listPtr->nused;
if (!listPtr->size)
listPtr->size = 1;
listPtr->list = (char **) realloc(listPtr->list,
sizeof(char *) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
return 0;
}
xpand_list_String *String_CreateList(int initialLen)
{
xpand_list_String *tempPtr;
if (initialLen < 1)
{
initialLen = 10;
}
tempPtr = (xpand_list_String *) malloc(sizeof(xpand_list_String));
if (tempPtr)
{
tempPtr->list = (char *) malloc(sizeof(char) * initialLen);
if (!tempPtr->list)
{
return 0;
}
tempPtr->nused = 0;
tempPtr->size = initialLen;
}
else
{
fprintf(stderr, "Could not allocate memory for expanding list\n");
}
return tempPtr;
}
int String_AddItem(xpand_list_String *listPtr, char newItem)
{
if (listPtr->nused == listPtr->size)
{
if (listPtr->size < 1)
listPtr->size = 1;
listPtr->size *= 2;
listPtr->list = (char *) realloc(listPtr->list,
sizeof(char) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
}
listPtr->list[(listPtr->nused)++] = newItem;
return 0;
}
int String_ShrinkToFit(xpand_list_String *listPtr)
{
listPtr->size = listPtr->nused;
if (!listPtr->size)
listPtr->size = 1;
listPtr->list = (char *) realloc(listPtr->list,
sizeof(char) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
return 0;
}
xpand_list_Int *Int_CreateList(int initialLen)
{
xpand_list_Int *tempPtr;
if (initialLen < 1)
{
initialLen = 10;
}
tempPtr = (xpand_list_Int *) malloc(sizeof(xpand_list_Int));
if (tempPtr)
{
tempPtr->list = (int *) malloc(sizeof(int) * initialLen);
if (!tempPtr->list)
{
return 0;
}
tempPtr->nused = 0;
tempPtr->size = initialLen;
}
else
{
fprintf(stderr, "Could not allocate memory for expanding list\n");
}
return tempPtr;
}
int Int_AddItem(xpand_list_Int *listPtr, int newItem)
{
if (listPtr->nused == listPtr->size)
{
if (listPtr->size < 1)
listPtr->size = 1;
listPtr->size *= 2;
listPtr->list = (int *) realloc(listPtr->list,
sizeof(int) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
}
listPtr->list[(listPtr->nused)++] = newItem;
return 0;
}
int Int_ShrinkToFit(xpand_list_Int *listPtr)
{
listPtr->size = listPtr->nused;
if (!listPtr->size)
listPtr->size = 1;
listPtr->list = (int *) realloc(listPtr->list,
sizeof(int) * listPtr->size);
if (!listPtr->list)
{
return 1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -