C中二维数组作为参数的几种做法

Posted 柳鲲鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C中二维数组作为参数的几种做法相关的知识,希望对你有一定的参考价值。

  总有机会需要这样使用。怎么办呢?

  • char**
    char** argv = (char**)malloc(sizeof(char*)*ARGC);
    for (int i=0; i<ARGC; i++)
    {
        argv[i] = (char*)malloc(PARAM_SIZE);
        memset(argv[i], 0, PARAM_SIZE);
    }

  个人推荐这个办法。最直观,使用最方便。

  • 引用法

没试过。如果可以的话,这个显然也很方便。

  • 定义一个结构

在结构中放不同数据。对于多种类型的情形,这个更方便。

  • 二维数组法

在C中,数组在声明时就有了固定大小。

void function(int params[][3])

 这样子还好吧,就是感觉比较怪异。

  • 指针法
void function(int (*a)[3])

这个样子真的很怪异,强烈建议避免。

  • 指针指针法
void function(char ** ppData )

  这个写法容易引起误解。如果你真的试图传递一个数组,ppData[0]时会崩溃。

以上是关于C中二维数组作为参数的几种做法的主要内容,如果未能解决你的问题,请参考以下文章

c语言中怎么用二维数组作为函数参数

c语言中怎么用二维数组作为函数参数

参数为空取全部数据的几种做法

C-二维数组作为函数参数, 字符数组

C语言中当二维数组和多维数组作为函数参数时[重复]

Java中的几种比较器,对象比较,二维数组排序