#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void subfunc(char **dat)
{
int i, j;
dat = (char **)malloc(3 * sizeof(char *));
for (i = 0; i < 3; ++ i)
{
dat = (char *)malloc(16);
for (j = 0; j < 15; ++ j)
dat[j] = 'a';
dat[j] = '\0';
}
}
/*char **dat = NULL;*/
int main(void)
{
char **dat = NULL;
int i, j;
/* subfunc(dat);*/
dat = (char **)malloc(3 * sizeof(char *));
for (i = 0; i < 3; ++ i)
{
dat = (char *)malloc(16);
for (j = 0; j < 15; ++ j)
dat[j] = 'a';
dat[j] = '\0';
}
for (i = 0; i < 3; ++ i)
puts(dat);
for (i = 0; i < 3; ++ i)
free(dat);
free(dat);
getch();
return 0;
}
遗憾,定义全局变量也不行
将子函数代码放到母函数里才可以,
海豚朋友有其他方法吗?