分配内存并写入 编译后为什么没有输出到屏幕上呢 请大佬指点迷津
#include<stdio.h>#include<stdlib.h>
#include<string.h>
int getMen(char ***p3,int num)
{
int i=0;
char **tmp=NULL;
if(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);
sprintf(tmp[i],"%d%d%d",i+2,i+2,i+2);
}
*p3=tmp;
return 0;
}
void getMen_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;
}
int main(void)
{
int i=0,j=0;
char **p2=NULL;
int num=8;
getMen(&p2,num);
for(i=0;i<num;i++)
{
printf("%s \n",p2[i]);
}
getMen_Free(&p2,num);
system("pause");
return 0;
}