//实例
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
//1
char* getMem(int num)
{
char* p1 = NULL;
p1 = (char*)malloc(sizeof(char)*num); //此处分配的内存空间不会因为析构而被释放
if (p1 == NULL)
{
return NULL;
}
return p1;
}
//2
/*
char* getMem2()
{
char buf[64]; //临时变量 栈区存放 析构后内存的东西消失
strcpy(buf,"123456789");
return buf;
}
*/
int main()
{
char *tmp = NULL;
tmp = getMem(10);
if (tmp == NULL)
{
return 0;
}
strcpy(tmp,"11222");//向tmp指向的内存空间里面copy数据
cout << tmp << endl;
return 0;
}
//程序1 示意图
因为分配的内存空间被分配到堆区,所以不会因函数调用完毕,而被析构
//函数二
被析构的内存空间