C语言单链表使用malloc函数动态分配存储的语法是什么
时间: 2024-10-21 12:10:21 浏览: 13
在C语言中,当你需要动态地为单链表节点分配内存时,可以使用`malloc()`函数。`malloc()`是标准库提供的用于请求内存空间的函数,返回的是一个指向新分配内存的指针。下面是一个基本的例子,展示了如何为一个链表节点动态分配内存:
```c
#include <stdlib.h> // 包含malloc和free的头文件
// 定义链表节点结构体
typedef struct Node {
int data; // 数据域
struct Node* next; // 指向下一个节点的指针
} Node;
// 动态分配一个节点
Node* create_node(int value) {
// 使用malloc分配内存,如果分配失败,返回NULL
Node* newNode = (Node*) malloc(sizeof(Node));
// 若成功分配,设置节点值和next指针
if (newNode) {
newNode->data = value;
newNode->next = NULL; // 初始化下一个节点为NULL
} else {
printf("Memory allocation failed.\n");
}
return newNode;
}
// 使用示例
int main() {
// 动态创建一个节点,并添加到链表
Node* head = create_node(5);
// ... 其他操作 ...
// 记得在不再需要节点时释放内存
free(head);
return 0;
}
```
在这个例子中,`malloc(sizeof(Node))`会为整个节点结构分配足够的空间。在程序结束前,记得使用`free()`函数释放已分配的内存,防止内存泄漏:
```c
free(newNode);
```
阅读全文