二位数组作为形参的两种方式,求比较

来源:互联网  时间:2016/7/17 2:26:01

关于网友提出的“ 二位数组作为形参的两种方式,求比较”问题疑问,本网通过在网上对“ 二位数组作为形参的两种方式,求比较”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 二位数组作为形参的两种方式,求比较
描述:

二位数组作为形参,目前仅知道两种形式,一种直接采用二维数组,一种是用二维指针。以下是做的一个简单的实例。
大家帮我看看,在实际应用中两者有和优缺点。当然,有更好的方式更好了。
以下均应用在字符串数组中
void array_test1(char **pArray,int row,int col)
{
    char ptr[10] = {0};
    for(int i=0;i<>
    {
        for(int j=0;j<>
        {
           ptr[j] = *((char*)test + col*i + j);//二维指针只表示二维数组头指针,获取值不太方便
        }
    }
}
void array_test(char cArray[][10],int row)
{
    char ptr[10] = {0};
    for(int i=0;i<>
    {
       ptr[i] = cArray[i];//二维数组必须给出列,赋值简单
    }
}
voi main(void)
{
    char str[][10]={"第一","第二","第三"};
    array_test(str,3);
    array_test1(str,3,10);
}
水平有限,大家包涵


解决方案1:

你弄得比我清楚多了。学习了。。。

解决方案2:

void array_test1(char **pArray,int row,int col)
这种针对malloc的情形
char** parr = (char**)malloc( N*sizeof(char*) );
for (int i=0; i<>
  parr[i] = (char*)malloc( sizeof(char) * M);
array_test(parr, N, M);
void array_test(char cArray[][10],int row);
针对二维数组。
 char str[][10]={"第一","第二","第三"};
  array_test(str,3);

解决方案3:

 error C2664: 'array_test1' : cannot convert parameter 1 from 'char [3][10]' to 'char **'

解决方案4:

还可以用数组指针

解决方案5:

恩,常见的就这两种,

上一篇字符串数组和结构体中字符串数组的比较
下一篇求教 背包问题 我的maxV输出总是一堆负数。。
明星图片
相关文章
《 二位数组作为形参的两种方式,求比较》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)