销毁顺序表的程序通常包括以下步骤:
检查输入参数:
确保传入的顺序表指针不是NULL。
释放内存:
使用`free`函数释放顺序表所占用的内存。
重置指针:
将顺序表指针设置为NULL,以避免悬空指针。
返回结果:
返回操作结果,通常为0表示成功,其他值表示错误。
```c
include include define OK 1 define OVERFLOW -2 define LIST_INIT_SIZE 10 // 线性表存储空间的初始分配量 // 定义顺序表结构体 typedef struct { int *elem; // 存储元素的数组 int length; // 当前元素个数 int listsize; // 分配的存储空间大小 } SeqList; // 初始化顺序表 int InitList_Sq(SeqList *L) { L->elem = (int *)malloc(sizeof(int) * LIST_INIT_SIZE); if (!L->elem) { exit(OVERFLOW); } L->length = 0; L->listsize = LIST_INIT_SIZE; return OK; } // 销毁顺序表 void DestroyList(SeqList *L) { if (L->elem) { free(L->elem); L->elem = NULL; } L->length = 0; L->listsize = 0; } // 示例主函数 int main() { SeqList p; if (InitList_Sq(&p)) { DestroyList(&p); if (!(p.elem)) { printf("销毁成功\n"); } } else { printf("初始化失败\n"); } return 0; } ``` 代码说明: 初始化顺序表,分配初始存储空间,并设置长度和存储空间大小。 销毁顺序表,释放存储空间,并将指针设置为NULL。 示例主函数,展示如何初始化和销毁顺序表。 建议: 在实际应用中,建议在销毁顺序表后,检查指针是否为NULL,以确保安全。 如果顺序表是在堆上分配的,确保在不再需要时及时释放内存,以避免内存泄漏。InitList_Sq:
DestroyList:
main: