国产丝袜美女一区二区,精品久久免费影院,久久91精品久久久水蜜桃,亚洲人成网站999久久久综合,天天2023亚洲欧美,久久久久日韩精品,久久这里只是精品最新,999精品欧美一区二区三区

考研論壇

標題: 動態分配內存的兩個函數. [打印本頁]

作者: 匿名用戶    時間: 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)用高一級的指針把低一級的指針傳出來.

作者: 匿名用戶    時間: 2018-3-20 19:41
本帖最后由 總有愛妃想睡朕 于 2018-3-21 12:00 編輯

留個筆記.




歡迎光臨 考研論壇 (http://m.0313v.com/) Powered by Discuz! X3.2