精品日本亚洲一区二区三区,99久久精品免费观看国产,99久久免费精品,亚洲精品国产一区二区成人,日本亚洲精品一区二区三区四区,国产亚洲精品成人久久网站,久久亚洲男人第一AV网站,精品国产高清一区二区广区,久久精品五月天很黄很艳女TV

考研論壇

 
查看: 1462|回復: 1
打印 上一主題 下一主題

動態分配內存的兩個函數.

[復制鏈接]

7

主題

184

帖子

643

積分

中級戰友

Rank: 3Rank: 3

精華
0
威望
50
K幣
593 元
注冊時間
2017-2-21
跳轉到指定樓層
1
發表于 2018-3-20 19:40 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 總有愛妃想睡朕 于 2018-3-21 20:28 編輯

//帶返回值的函數,運行正確.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* malloc_func(char* p)
{
        p = (char*)malloc(10 * sizeof(char));
        memset(p, 0, 10 * sizeof(char));
        strcpy(p,"abcdefghi");
        return p;
}

int main(void)
{
        char* p = NULL;
        p = malloc_func(p);
        printf("p=%p\n", p);
        printf("p =%s\n", p);
        free(p);
        return 0;
}

//二級指針分配動態內存.運行正確.
//傳入的是一級指針的地址.參數修改的是一級指針的內存.內存是可以修改的.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void malloc_func(char** p)
{
        *p = (char*)malloc(10 * sizeof(char));
         memset(*p, 0, 10 * sizeof(char));
         strcpy(p,"abcdefghi");
}

int main(void)
{
        char* p = NULL;
        malloc_func(&p);
        printf("p=%p\n", p);
        printf("p =%s\n", p);
        free(p);
        return 0;
}


總之,正確返回分配的內存,1)返回內存指針,2)用高一級的指針把低一級的指針傳出來.
    回復

    使用道具 舉報

    7

    主題

    184

    帖子

    643

    積分

    中級戰友

    Rank: 3Rank: 3

    精華
    0
    威望
    50
    K幣
    593 元
    注冊時間
    2017-2-21
    2
    發表于 2018-3-20 19:41 | 只看該作者
    本帖最后由 總有愛妃想睡朕 于 2018-3-21 12:00 編輯

    留個筆記.
    回復

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 注冊 人人連接登陸

    本版積分規則   

    關閉

    您還剩5次免費下載資料的機會哦~

    掃描二維碼下載資料

    使用手機端考研幫,進入掃一掃
    在“我”中打開掃一掃,
    掃描二維碼下載資料

    關于我們|商務合作|小黑屋|手機版|聯系我們|服務條款|隱私保護|幫學堂| 網站地圖|院校地圖|漏洞提交|考研幫

    GMT+8, 2026-4-30 01:10 , Processed in 0.066659 second(s), Total 11, Slave 11(Usage:6.5M, Links:[2]1,1_1) queries , Redis On.

    Powered by Discuz!

    © 2001-2017 考研 Inc.

    快速回復 返回頂部 返回列表
    × 關閉