不知道这个提法对不对。。。我有一个函数返回值是char**,我得初始化,可以这样char*name[]={"","",""}是吧,这样初始化是3个空的数组。可是这个数组的大小是根据我后面交互操作时选择...
不知道这个提法对不对。。。我有一个函数返回值是char**,我得初始化,可以这样char * name[]={"","",""}是吧,这样初始化是3个空的数组。可是这个数组的大小是根据我后面交互操作时选择的数量来定的,现在初始化不知道怎么确定它的大小,char * name[]=后面可以跟一个可变的数组吗?。。。不晓得说清楚了没
char**类型变量一般用于动态使用
二维数组
,操作方法如下:
参考代码:
#include <stdlib.h> //malloc need
void main()
{
char **pp=NULL ; //只有在定义时的赋值,才叫初始化,其他位置都叫赋值!
int i,num1, num2;
printf("input rows : "); scanf("%d", &num1 );
pp=(char **) malloc( num1*sizeof(char *) ); //返回一个指向指针类型数据的首地址
for( i=0;i<num1;i++ )
{
printf("input length of string : "); scanf("%d", &num2 );
pp[i]=(char *)malloc(num2);
printf("input string : "); scanf("%s", pp[i] );
}
//.... 对pp进行应用...
for( i=0;i<num1;i++ ) //释放内存
free(pp[i]);
free(pp);
}