• 堆的申请和释放


    #include <stdio.h>
    
    void func1(void);
    void func2(void);
    void func3(void);
    void func4(void);
    int main(int argc, char ** argv){
    
        func4();
        
        
    
    
    
        getchar();
    
        return 0;
    
    
    }
    
    /** 
        malloc跟 calloc之间的区别
    
    */
    void func4(void){
    
        char *p1 = NULL;
        p1 = malloc(sizeof(char)* 10);
        p1[0] = 'a';
        printf(p1);
        printf("
    ");
        free(p1);
        //屯屯屯屯屯��葺j凹碶 。某一次的运行结果。可见如果不赋初值的话,就一定有值。
        p1 = calloc(10,sizeof(char));
        p1[0] = 'a';
        printf(p1);
        free(p1);
        //这样就可以看到运行效果了。因为帮助过我们进行初始化,所以后面p1里面的每个值都是0
        //遇到0就是 文件结尾。所以 不再往下执行了
    
        //func4的运行效果图:

    
    
    }
    /** 
        写一个这么大的数,就是为了提醒自己,一定要记得free掉。
    */
    void func3(void){
        int *p = malloc(sizeof(int)* 1000000);//我们说了这是一个int型数组
        *p = 200;//给*p赋值,就是只给数组中的第一个元素赋了值。剩下999999个还没赋值呢,但是不代表里面没值
        //任何一块儿从内存里面要出来的空间,都有值,有可能是0,当然如果是其他程序退出剩下的,那么就什么都有可能了。
        //但通常都不是0。
        //所以用 calloc申请的内容帮我们默认设置了初值0.
        printf("p的地址%p,p的大小%d", p, *p);
        free(p);
        // 运行结果:p的地址004D0040,p的大小200
    
    }
    
    /** 
        malloc(sizeof(int)*10)
        跟 malloc(sizeof(char)*10)
        分别代表什么怎么使用
    
    */
    void func2(void){
    
        int * p = malloc(sizeof(int)* 10);//申请一个整型数组长度为10  sizeof() = 40
        p[0] = 1;
        p[1] = 2;
        p[2] = 3;
        for (int i = 0; i < 3; i++){
            printf("%d", p[i]);
        }
        free(p);
            
    }
    /** 
        引入malloc
    
    */
    void func1(void){
        char * p = malloc(sizeof(char)* 10);//申请一个char型数组,长度为10 zizeof() = 10
    
        strcpy(p, "nihao");
    
        printf(p);
    
        free(p);
    }
  • 相关阅读:
    Maven的安装
    Mongodb 分库解决锁率过大问题
    IntelliJ IDEA集成开发Maven工程
    soapUI4.5模拟客户端测试webservice接口,含性能测试
    Mongodb性能监控
    Mongodb内存释放
    ActiveMq队列数据监控器1小时1个Swing小程序
    运输公司对用户计算运输费用C语言109页
    给出一百分制,要求输出成绩等级'A''B''C''D''E'
    有一函数,写程序 输入x的值,输出y相应的值
  • 原文地址:https://www.cnblogs.com/letben/p/5236682.html
Copyright © 2020-2023  润新知