是不是任何程序都要进行内存管理呢?
以前一直都没有怎么做内存管理,没有申请直接用的,问一下在什么情况下要进行内存管理呢?
以前一直都没有怎么做内存管理,没有申请直接用的,问一下在什么情况下要进行内存管理呢?
2017-02-01
//仅是为了说明,代码属于不全代码。
#include <iostream>//代码区
using namespace std;//代码区
void Reverse( char datStr[], char sreStr[] )//代码区
{
int len = strlen(sreStr);//局部变量→栈区
static int j=0;//静态变量→全局数据区 //static 静态的
for(int i=len-1; i<=0;i-- )
{
datStr[j]=sreStr[i];
j++;
};
};
int a = 0;//全局变量 → 全局数据区
int main()//代码区
{
char sre[100]={0};
a = 1;//(全局变量) 可访问
j = 1;//(静态局部变量)不可访问
system("pause");
return 0;
};
//局部变量:每次执行函数的时候,系统都会在栈区分配一个空间
//每次函数结执行完之后,局部变量(空间)会被销毁,把这个空间还给系统。
//全局变量:不会被销毁永远存在,直到我们的应用程序运行结束。
//全局变量与静态局部变量的区别:
//全局变量:可以在任何地方访问。
//静态局部变量:在声明的函数体内进行访问.
用New分配一个变量时,不用时必须用delete,否则在堆中不会被释放,占用内存,导致崩溃.
delete 删除 ,后面+地址(指针)
当我们分配的是数组是,释放格式为:
delete [] p;
在堆中创建一个对象数组,C++要求对象必须有一个默认的构造函数.
应该能看懂 堆和栈区的区别吧~new出来的才进入堆区
静态局部变量还有更深的 不说了
举报