数据结构学习系列之顺序表的两种创建方式

  • 方式1:
  • 通过返回值返回所申请的内存空间的首地址
  • 示例代码:
list_t *create_seq_list_1(){
    
    

    list_t *p = (list_t *)malloc(sizeof(list_t));
    if(NULL == p){
    
    

        printf("内存分配失败\n");

        exit(-1);

    }

    memset(p,0,sizeof(list_t));
    return p;

}
  • 注意事项:
  • 1.分配完内存地址空间后,一定要检查内存分配是否成功
  • 2.若内存分配失败,需要使用shell命令exit(-1)退出
  • 方式2:
  • 使用地址传参创建顺序表;
  • 示例代码:
int create_seq_list_2(list_t **p){
    
    

    if(NULL == p){
    
    

        printf("入参为NULL\n");

        return -1;

    }

    *p = (list_t *)malloc(sizeof(list_t));

    if(NULL == *p){
    
    

        printf("内存分配失败\n");

        return -1;

    }

    memset(*p,0,sizeof(list_t));

    return 0;
    
}
  • 注意事项:
  • 1.所传入的形参必须是二级指针变量,因为二级指针用来存储一级指针变量的地址,即所申请的顺序表内存空间的地址
  • 2.形参传入到创建顺序表的功能函数后,一定要做入参合理性检查
  • 3.同方式1一样,分配完内存地址空间后,一定要检查内存分配是否成功

猜你喜欢

转载自blog.csdn.net/qq_41878292/article/details/132638783
今日推荐