Método 1:
Ao 返回值
retornar o solicitado 头结点所在的内存空间首地址
, ou seja, criando o nó cabeça da lista vinculada unidirecional, o código fica o seguinte:
Código de amostra:
node_t * create_link_node_1 ( ) {
node_t * phead = ( node_t * ) malloc ( sizeof ( node_t ) ) ;
if ( NULL == phead) {
printf ( "内存分配失败\n" ) ;
exit ( - 1 ) ;
}
phead-> data = - 1 ;
phead-> next = NULL ;
return phead;
}
Precauções:
1. Depois de alocar o espaço de endereço de memória do nó principal, certifique-se de verificar 内存分配是否成功
;
2. Se a alocação de memória do nó principal falhar, ele precisará ser usado shell命令exit(-1)退出
;
3. Para a lista vinculada unidirecional 每个结点都有数据域和指针域
e 头结点的数据域可以不储存任何数据
para o nó principal 数据域
nesta função 被赋值 -1
,;
4. Para o nó principal 指针域被赋值 NULL
, representa a lista vinculada unilateral neste momento 只有一个头结点
;
Método 2:
O método usado para 地址传参
criar o nó principal da lista vinculada unilateral, o código é o seguinte:
Código de amostra:
int create_link_node_2 ( node_t * * phead, int data) {
if ( NULL == phead) {
printf ( "入参为NULL\n" ) ;
return - 1 ;
}
* phead = ( node_t * ) malloc ( sizeof ( node_t ) ) ;
if ( NULL == * phead) {
printf ( "内存分配失败\n" ) ;
return - 1 ;
}
( * phead) -> data = data;
( * phead) -> next = NULL ;
return 0 ;
}
Precauções:
1. O parâmetro passado deve ser 二级指针变量
, porque 二级指针用来存储一级指针变量的地址
, ou seja 所申请的单向链表头结点在内存空间的地址
;
2. Depois que os parâmetros formais são passados para a função de função que cria o nó principal da lista vinculada unidirecional, isso deve ser feito 入参合理性检查
;
3. Igual ao método 1, após alocar o espaço de endereço de memória do nó principal, certifique-se de verificar 内存分配是否成功
;
4. Nó principal 数据域被赋值 -1
;
5. Nó principal 指针域被赋值 NULL
;