malloc函数
2015-10-07 16:28
190 查看
C语言中,使用malloc函数向内存中动态申请空间。
函数的原型是extern void *malloc(unsigned int num_bytes);
可见,函数返回的是指针类型,参数是要申请的空间的大小。
例如,我们在申请一个Node节点的时候。
定义了一个节点指针,动态申请Node大小的内存空间,将返回的指针强制转化为Node型的,这样就完成了节点指针的创建。这种创建方式比较灵活,当我们不需要当前这个Node的时候,我们可以重新让其指向另一个节点。
而如果直接声明的时候,Node类型节点就固定了,知道离开作用域。
同时,取变量的时候,用结构体变量直接取分量,用“.”,用指向结构体的指针取分量的时候,用“->”,也可以用(*newNode).num取变量,这两个是等价的。注意括号,否则编译不能通过。
函数的原型是extern void *malloc(unsigned int num_bytes);
可见,函数返回的是指针类型,参数是要申请的空间的大小。
例如,我们在申请一个Node节点的时候。
#include<stdio.h> #include<stdlib.h> typedef struct { int num; struct Node *next; }Node; int main() { Node *newNode; newNode = (Node *)malloc(sizeof(Node)); newNode->num=999; printf("%d",newNode->num); return 0; }
定义了一个节点指针,动态申请Node大小的内存空间,将返回的指针强制转化为Node型的,这样就完成了节点指针的创建。这种创建方式比较灵活,当我们不需要当前这个Node的时候,我们可以重新让其指向另一个节点。
而如果直接声明的时候,Node类型节点就固定了,知道离开作用域。
同时,取变量的时候,用结构体变量直接取分量,用“.”,用指向结构体的指针取分量的时候,用“->”,也可以用(*newNode).num取变量,这两个是等价的。注意括号,否则编译不能通过。
相关文章推荐
- codefirst 关系处理
- cryengine3 C++添加结点,制作插件
- WM_NOTIFY消息的讲解
- docker-machine的基本使用
- 数据分析师
- Theano学习笔记01--Dimshuffle()函数
- Android学习手记(2) Activity生命周期
- [译]学习IPython进行交互式计算和数据可视化(三)
- mysql查询今天、昨天、上周
- Qt基于对话框---查找
- 序
- 使用RelativeLayout实现自定义下拉列表Spinner
- Android布局属性详解
- 嵌入式学习之路
- 数据结构之线性表的顺序存储结构(数组)的插入与删除
- HDU 2602 Bone Collector (01背包问题 基础)
- ocp-170
- 第二次作业
- HDU 2602 Bone Collector (01背包问题 基础)
- [译]学习IPython进行交互式计算和数据可视化(二)