内存四区定义
栈区 : 由编译器自动分配释放、存放函数的参数值、局部变量等值堆区 : 一般由程序员分配释放(动态内存分配与释放)若程序员不释放、程序结束时可能由操作系统回收全局区: 全局变量和静态变量储存在一起代码区: 程序代码区、存放函数体的二进制代码
内存四区调配示例1
char
*getStr1(){
char
*p1 =
"abcde";
return p1;
}
char
*getStr2(){
char
*p2 =
"abcde";
return p2;
}
void main(){
char
*p1 =NULL;
char
*p2 = NULL;
p1 =getStr1();
p2 =getStr2();
//输出指针指向的字符串
printf(
"p1:%s p2:%s",p1,p2);
//输出指针的值
printf(
"p1:%d p2:%d",p1,p2);
}
内存四区调配示例2
char *getNum(
int num){
char *p1 =NULL;
p1 =
malloc(
sizeof(
char)*num);
if(p1==null){
return null;
}
return p1;
}
char *getNum2(){
char str[
64];
strcpy(str,
"123456");
return str;
}
void main(){
char *tmp =NULL;
tmp =getNum(
10);
strcpy(tmp,
"123456");
printf(
"str:%s",tmp);
tmp = getNum2();
printf(
"str:%s",tmp);
}