这篇文章,我打算写清楚这2件事
1,内存四区包含哪四区2,分别举例说明,在执行代码时,内存四区怎样处理
内存四区
栈区:存放函数的参数值,局部变量的值。 堆区: 全局区:包括静态区,常量区(存放字符串等常量) 代码区:把代码转换成二进制代码,存放二进制代码
全局区的使用
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
char * getStr1()
{
char *p1
= "abcdefg2";
return p1
;
}
char *getStr2()
{
char *p2
= "abcdefg2";
return p2
;
}
void main()
{
char *p1
= NULL;
char *p2
= NULL;
p1
= getStr1();
p2
= getStr2();
printf("p1:%s , p2:%s \n", p1
, p2
);
printf("p1:%d , p2:%d \n", p1
, p2
);
printf("hello...\n");
system("pause");
return;
}
全局区的使用
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
char * getstring1()
{
char *p1
= "abcde";
return p1
;
}
char * getstring2()
{
char *p2
= "abcde";
return p2
;
}
int main01()
{
int i
= 0;
char *p2
;
p2
= (char *)malloc(100);
strcpy(p2
,"22222222222");
printf(p2
);
if (p2
!= NULL)
{
free(p2
);
p2
= NULL;
}
if (p2
!= NULL)
{
free(p2
);
}
system("pause");
return 1;
}
void main()
{
char buf
[100];
int i
;
system("pause");
return 1;
}
```c
```c
在这里插入代码片