C提高_day03_玩轉多級指標

來源:互聯網
上載者:User

標籤:

#include <stdlib.h>#include <string.h>#include <stdio.h>char **getMem51(int num){    int i = 0;    char **p2 = NULL;    p2 = (char **)malloc(sizeof(char *) * num);    if (p2 == NULL)    {        return NULL;    }    for (i=0; i<num; i++)    {        p2[i] = (char *)malloc(sizeof(char)  * 100  ); //char buf[100];        sprintf(p2[i], "%d%d%d", i+1, i+1, i+1);    }    return p2;}int getMem52(char ***p3 , int num){    int i = 0;    char **tmp = NULL;    if (p3 == NULL)  //判斷p3 而不是*p3.  p3指向的記憶體空間可以是NULL     {        return -1;    }        tmp = (char **)malloc(sizeof(char *) * num);    if (tmp == NULL)    {        return NULL;    }    for (i=0; i<num; i++)    {        tmp[i] = (char *)malloc(sizeof(char)  * 100  ); //char buf[100];        sprintf(tmp[i], "%d%d%d", i+1, i+1, i+1);    }    *p3 = tmp;     //1 2    return 0;}void getMem52_Free(char ***p3 , int num){    int i = 0;    char **tmp = NULL;    if (p3 == NULL)    {        return ;    }    tmp = *p3;     for (i=0; i<num; i++)    {        free(tmp[i]);    }    free(tmp);         *p3 = NULL; //把實參賦值成null}void main(){    int i = 0, j = 0;    char **p2 = NULL;    int num = 5;    //p2 = getMem51(num);    getMem52(&p2, num);    for (i=0; i<num; i++)    {        printf("%s \n", p2[i]);    }    getMem52_Free(&p2, num);    printf("hello...\n");    system("pause");    return ;}

C提高_day03_玩轉多級指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.