NDK03_C:函数指针、内存分配

NDK开发汇总

函数指针

函数名是一个函数的首地址,所以我们可以将函数赋值给对应类型的函数指针

void(p)(char)
//void 返回值
//(*p) p 变量表示这个函数

void 类型的指针:
类似:java object

指针变量都是4个字节。都是用十六进制表示。
void* -》 int * / char * /float*

下面两个表达式完全不同
int(*calc2)(void a, void ); 函数指针
int
p(int a, int b); 一个返回值是int * 的函数
(int
) p(int a, int b)

2 内存分配

内存:
3区:
程序区
程序的二进制文件

静态存储区
全局变量和静态变量

动态存储区
堆区:用于程序动态分配
栈区:编译器自动分配,编译器自动申请和释放 2M

void* malloc(size_t size)
分配内存的单元是 字节, 大小 size,连续的内存
如果申请失败,返回值是NULL

void* calloc(size_t _Count,size_t _Size)
申请 _Count 个 大小为_Size 的连续空间,这个连续空间的大小是_Size,如果申请失败,返回值是NULL
而不是 _Count * size, 同时,它会初始化为0

void * realloc(void * ptr, int len);

动态申请的内存一定要收到释放
free(*p)
原则:不能重复释放
必须赋值NULL
申请和释放一一对应

3 其他

1) 熟练使用动态分配内存函数和释放内存的函数
2)char *str = “hello world” 和 char str[20] = “hello world”; 区别总结?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值