android108 内存分配

简介:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>  //包含头文件 

main(){
       int i = 3;//栈中 
       int arr[10];//栈中 
       int* p = malloc(sizeof(int) * 10);//p在栈中,malloc在堆里面长度为10个整型,malloc出来的内存是连续的。 
       *p = 10;
       *(p+1) = 20;
       
       printf("%#x\n", p);//0x3e3cf0 
       printf("%d\n", *p);//10 
       printf("%d\n", *(p+1));//20 
       printf("%d\n", p+1);//4078836 
       printf("%d\n", *(p+2));//0 
       printf("%d\n", *(p+3));//0 
       free(p);
       system("pause"); 
}



#include <stdio.h>
#include <stdlib.h>

main(){
       int i = 3;
       int* p = &i;
       int** q = &p;
       int*** l = &q;
       
       printf("i的值为%d\n", ***l);//3 
       //l表示取出l内存空间的值,*l表示取出l内存空间值的内存空间的值,**l表示取出l内存空间值的内存空间值的内存空间的值。 
       system("pause"); 
}
复制代码
复制代码
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
main(){
       printf("请输入学生人数:");
       int count;
       scanf("%d", &count);
       //int b在C中是系统在栈中申请内存,系统负责回收的。
       // malloc申请的是堆内存由程序员释放。 
       //栈内存只有2M,连续的内存空间,先进来的后释放。 堆的内存和物理内存一样大,
       //堆不连续是用链表表示的,链表查找比连续的麻烦但是增删比连续的快。 
       //C是面向过程的没有对象概念所以没有new,malloc就是new。
       //静态内存是栈上分配的,编译的时候就已经分配好了,程序的怎个运行期间都存在,
       //例如全局变量和static变量。动态内存是堆上malloc或者new分配的。 
       
       
       //根据学生人数去动态申请堆内存 , 
       int* p = malloc(sizeof(int) * count);//count个int类型 
       
       int i;
       for(i = 0; i < count; i++){
             printf("请输入第%d个学生学号:", i);
             scanf("%d", p+i);
       }
       
       printf("请输入新增的学生人数:");
       int newCount;
       scanf("%d", &newCount);
       p = realloc(p, sizeof(int) * (count + newCount));//扩充p内存 
       
       for(i = count; i < count + newCount; i++){
             printf("请输入第%d个学生学号:", i);
             scanf("%d", p+i);
       }
       
       for(i = 0; i < count + newCount; i++){
            printf("第%d个学生的学号是:%d\n", i, *(p+i)); 
       }
       system("pause"); 
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4985285.html,如需转载请自行联系原作者


相关文章
|
1月前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
7月前
|
缓存 Java Shell
Android 内存泄露,怎样查找,怎么产生的内存泄露?
Android 内存泄露,怎样查找,怎么产生的内存泄露?
52 0
|
8天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
13 0
|
10天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
1月前
|
缓存 移动开发 Java
构建高效Android应用:内存优化实战指南
在移动开发领域,性能优化是提升用户体验的关键因素之一。特别是对于Android应用而言,由于设备和版本的多样性,内存管理成为开发者面临的一大挑战。本文将深入探讨Android内存优化的策略和技术,包括内存泄漏的诊断与解决、合理的数据结构选择、以及有效的资源释放机制。通过实际案例分析,我们旨在为开发者提供一套实用的内存优化工具和方法,以构建更加流畅和高效的Android应用。
|
1月前
|
监控 Java Android开发
构建高效Android应用:从内存管理到性能优化
【2月更文挑战第30天】 在移动开发领域,打造一个流畅且响应迅速的Android应用是每个开发者追求的目标。本文将深入探讨如何通过有效的内存管理和细致的性能调优来提升应用效率。我们将从分析内存泄露的根本原因出发,讨论垃圾回收机制,并探索多种内存优化策略。接着,文中将介绍多线程编程的最佳实践和UI渲染的关键技巧。最后,我们将通过一系列实用的性能测试工具和方法,帮助开发者监控、定位并解决性能瓶颈。这些技术的综合运用,将指导读者构建出更快速、更稳定、用户体验更佳的Android应用。
|
1月前
|
缓存 监控 API
构建高效的Android应用:从内存优化到电池寿命
【2月更文挑战第27天】 在移动开发领域,构建一个既高效又省电的Android应用是每个开发者的梦想。本文深入探讨了Android应用性能优化的关键策略,包括内存管理和电池使用效率。我们将分析常见的内存泄漏问题,并提供解决方案,同时介绍最新的Android电池优化技术。通过实例和最佳实践,读者将学会如何打造一个更加流畅、响应迅速且电池友好的Android应用。
|
1月前
|
传感器 缓存 Android开发
构建高效的Android应用:从内存优化到电池寿命
【2月更文挑战第23天】在移动开发领域,性能优化是一个持续的挑战。特别是对于Android应用来说,由于设备多样性和碎片化问题,开发者需要采取一系列策略来保证应用的流畅运行。本文深入探讨了Android应用的性能优化,包括内存管理、电池使用效率和UI渲染。我们将提供实用的技巧和最佳实践,帮助开发者构建更加高效、响应迅速的应用,从而改善用户体验并延长设备电池寿命。
14 1
|
1月前
|
监控 Java Android开发
构建高效Android应用:从内存优化到电池寿命
【2月更文挑战第18天】在移动设备的生态系统中,资源管理是确保用户满意度的关键。特别是对于Android开发者来说,优化应用的内存使用和延长电池寿命是提升用户体验的重要方面。本文将深入探讨Android平台上的内存管理机制,提供实用的代码级优化技巧,并讨论如何通过调整应用行为来减少能量消耗,最终目标是为开发者提供一套全面的技术策略,以打造更加高效、响应迅速且电池友好的Android应用。
32 5
|
7月前
|
算法 Java Android开发
Android rxjava和LiveData中的内存泄漏
Android rxjava和LiveData中的内存泄漏
118 0