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中二维数组作为参数的几种做法的主要内容,如果未能解决你的问题,请参考以下文章