简单记录一下堆栈问题,一直以来,概念里对堆栈的划分比较粗暴,堆是存放大批量数据的,栈是存变量的,今天微微补充一下。
在程序所需的存储里,栈的使用是从起始地址 开始分配 ,有序累加的,堆是从末尾地址开始,无规律的占用。
栈:
存放的是直接定义的变量,例如int a= 0,0就存放在栈里,&a等于存放0的地址区域,变量的分配按照word-size(一般是4个字节)的倍数来分配。
堆:
使用malloc函数申请的数据,float *b = (float *)malloc(size) 其中b是一个指针类型,存放在栈上,该位置存的内容为一个地址,指向数据在堆上的起始地址。