四区例

来源:互联网 发布:java堆栈图解 编辑:程序博客网 时间:2024/06/07 08:01
#include<stdio.h>

char * getstr();
char * getstr2();

int
main(void)
{
    char * p = getstr();
    char * p2 = getstr2();

    printf("p2:%s,\n",p2);
    *(p2+2)='s';
    printf("p2:%s,\n",p2);
    
    printf("p:%s,\n",p);
    *(p+2)='r';

    
    return 0;
}

//不可修改,因为在内存中分配的空间是常量空间
//属于常量区
char *
getstr()
{
    char *p ="abcdefg";

    return p;
}

//可以修改,在内存中分配了动态空间
//属于堆区
char * getstr2()
{
    char * p;

    p = (char *)malloc(sizeof(char)*10);

    strcpy(p,"123456");

    return p;
}

0 0
原创粉丝点击