1. 说明及代码实现
//静态内存分配 分配的是栈内容 栈内存特点 大小固定 由系统分配系统回收
int *functionMemory() {
//声明一个 int 类型的数组
int arr[] = {1, 3, 5, 7, 9};
//用 int 类型 的指针变量保存 int 数组的首地址
int *p = arr;
__android_log_print(ANDROID_LOG_INFO, TAG, "arr1的地址 %#x", arr);
return p;
}
int *functionMemory1() {
//声明一个 int 类型的数组
int arr[] = {9, 7, 5, 3, 1};
//用 int 类型 的指针变量保存 int 数组的首地址
int *p = arr;
__android_log_print(ANDROID_LOG_INFO, TAG, "arr2的地址 %#x", arr);
return p;
}
2. 静态内存分配
//静态内存分配
void memoryAllocation() {
int *q = functionMemory();
functionMemory1();
//*q = 1 , *(q+1) = 3 , * (q+2) = 5
__android_log_print(ANDROID_LOG_INFO, TAG, "*q = %d , *(q+1) = %d , * (q+2) = %d", *q, *(q + 1) ,*(q + 2));
//*q = 1557118128 , *(q+1) = 32764 , * (q+2) = 1631717472
__android_log_print(ANDROID_LOG_INFO, TAG, "*q = %d , *(q+1) = %d , * (q+2) = %d", *q, *(q + 1) ,*(q + 2));
}