【C语言提高28】多级指针

来源:互联网 发布:python key value 编辑:程序博客网 时间:2024/06/07 18:23
#include<stdlib.h>#include<stdio.h>#include<string.h>#include<ctype.h>//产生molloc内存char**getMem61(int num){int i = 0, j = 0;char** p2 = NULL;if (p2 == NULL){return NULL;}p2 = (char**)malloc(sizeof(char*)*num);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 getMem62(char***p2,int num){int i = 0;char**tmp = NULL;if (p2 == NULL){return -1;}tmp = (char**)malloc(sizeof(char*)*num);*p2 = tmp;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 0;}//利用三级指针释放二级指针void getMemFree62(char***p2, int num){int i = 0;char**tmp = NULL;if (p2 == NULL){return;}tmp = *p2; //释放所指向的内存空间for (i = 0; i < num; i++){free(tmp[i]);}free(tmp);*p2 = NULL;//把实参置为NULL}void main(){int i = 0, j = 0;char** p2 = NULL;char*tmp;char tmpbuf[100];int num = 5;        getMem62(&p2,num);for (i = 0; i < num; i++){printf("p2:%s",p2[i]);}printf("\nhehhe");system("pause");return;}

0 0
原创粉丝点击