程序中动态分配的内存存放在哪个区域
展开全部
程序中动态分配的内存存放在堆内存区域。
叫“堆”。c语言:char *p1; //若是全局量,则在全局未初始化区,若是局部量,则在栈中。p1 = (char *)malloc(10); //分配得来得10字节的区域在堆区。
c++语言: 用 new分配,用 delete释放,在 堆区。用malloc分配,用 free释放,在类似堆区的自由存储区。堆不同于栈,它的数据结构并非由系统(无论是机器系统还是操作系统)支持,而是由函数库提供的。
直接方式:
当时多道程序技术还没出现,存储器的可用空间一般是给定的。那时程序员在编程序时或编译程序对源程序进行编译时,使用实际的存储器地址,这种分配方式使用户与计算机内存直接打交道。
系统资源在某一时刻为一个用户所独占。当多道程序出现时就使用户感到极不方便,因为用户要自己做主存的分配工作,而且内存不止存放一个作业,这要求用户必须知道每一个作业放在主存的什么地方,这无疑增加了用户的负担,况且存储空间的利用率也相当低。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询