C:将任意大小的数组传递给函数

时间:2017-03-31 13:07:28

标签: c multidimensional-array

我正在尝试编写一个C程序,该程序从文本文件中读取输入并将其放入2D数组中,其中行是行,列是字符。

但在阅读以下文章后我感到困惑:

http://c-faq.com/aryptr/pass2dary.html

我想到的功能定义是

int processArray(char **text) {
    ...
    ...
}

我试图传入一个指向2D数组的指针,该数组的尺寸直到运行时才知道。我希望能够使用两个方括号[] []

访问元素

然而,在链接中它说明了以下内容:

  

尝试调用时必须使用中间指针   它有一个二维数组:

extern g(int **ipp);
int *ip = &array[0][0];
g(&ip);       /* PROBABLY WRONG */
     

但这种用法   由于阵列已经存在,因此具有误导性且几乎肯定是不正确的   “扁平”(它的形状已经丢失)。

  1. 上述声明有什么问题?
  2. 如何将数组定义为多个维度?

1 个答案:

答案 0 :(得分:0)

不考虑VLA,您可以使用简单的指针指向矩阵:

if (list?.Any() != true)
{
    // Handle null or empty list
}