- 方式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一样,分配完内存地址空间后,一定要检查
内存分配是否成功
;