标签:
以前大一的时候学习过内存的分配方式,用到的是谭浩强的书。
现在又看了高质量c、c++编程,又唤起了对曾经学到过的知识的回忆。
温故而知新,现总结如下:
内存的分配方式有三种,在静态存储区域分配的内存空间,在堆栈上的分配的内存空间还有就是在堆或自由存储空间上的分配的内存空间。
1.静态存储区域在程序编译的过程中就已经编译好了,他们存在的生命周期贯穿着整个程序的运行。
静态存储区的存储的数据分别是全局变量,static 变量还有常量。
此处注意,常量所占的内存空间,只可被读而不可被写。
典型的:char *str="i am constant";
此处str字符指针指向的是一段常量的内存空间,于是"i am constant"这段常量空间就有下图的特质,当常量空间的str[0]这个位置被写入一个‘c‘时,发生异常。
这样定义就没问题:char str[]="i am constant";
因为此时str指向的是在栈区上的一片空间。
栈区将在下面讲到。
2.栈区或称堆栈
在栈区上的变量常为函数内的局部变量,函数阶数的那一刻,这些存储单元自动被释放。在这个区域内的
标签:
原文地址:http://www.cnblogs.com/jidan745le/p/4392315.html