【问题标题】:Initializing an array size using another array in C使用 C 中的另一个数组初始化数组大小
【发布时间】:2015-04-04 21:03:56
【问题描述】:

我正在从一个文本文件中读取两个值并将它们保存到一个数组中,我们称之为array1。 现在,是否可以使用 arrays1 的元素初始化二维数组? (即 char array2 [array[0]][array[1]]; )

我已经尝试过了,但程序开始表现得很奇怪。我还尝试将元素的值移动到整数中,然后使用整数作为数组大小。这种方法也不起作用。

请对我如何实现这一点提出任何建议?

【问题讨论】:

  • 您可以在函数中将数组初始化为可变大小,因为函数在堆栈上分配内存。但是,如果事情表现得很奇怪,则指针可能存在问题或超出范围。需要看代码。问题太笼统和笼统
  • 你没有显示错误代码。
  • C99或更高版本可以。

标签: c arrays 2d


【解决方案1】:

只有在编译时知道数组的维数时,才能使用数组初始化语法初始化二维数组。

例子:

// Create a 1 x 2 array.
char array2[][2] = {{array[0], array[1]}};

// Create a 2 x 2 array.
// Only array2[1][0] and array2[1][0] are initialized
// from array. Rest are zero initialized.
char array2[][2] = {{array[0]}, {array[1]}};

// Create a 3 x 2 array.
// Only array2[0][1] and array2[0][1] are initialized
// from array. Rest are zero initialized.
char array2[3][2] = {{array[0], array[1]}};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2021-06-08
    • 2012-08-03
    相关资源
    最近更新 更多