1. 说明
//c 堆内存的大小,取决于当前系统的状态,堆的内存 不连续的
//java 申请堆内存 new
//malloc memory allocation 申请堆内存
//接受参数,申请堆内存的大小
//返回值,申请到的堆内存的首地址
//java 的堆内存回收由垃圾回收处理
//c 的堆内存 需要程序员手动回收
//free 释放通过 malloc 申请的堆内存,当前的内存可以被其他程序使用
2. 代码实现
//动态内存分配
void dynamicMemoryAllocation(){
//申请可以存放5个元素的 int 类型值的堆内存
int *p = (int *) malloc(sizeof(int)*5);
//c for 循环 循环变量的声明要放到for的外边,先声明在使用
for (int i = 0 ;i < 5; i++){
*(p+i) = i;
}
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+1) = %d ", *(p+1));
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+2) = %d ", *(p+2));
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+3) = %d ", *(p+3));
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+3) = %d ", *(p+3));
free(p);
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+1) = %d ", *(p+1));
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+2) = %d ", *(p+2));
__android_log_print(ANDROID_LOG_INFO, TAG, "*(p+3) = %d ", *(p+3));
}