使用C中的另一个数组初始化数组大小

使用C中的另一个数组初始化数组大小,c,arrays,2d,C,Arrays,2d,我从一个文本文件中读取两个值并将它们保存到一个数组中,我们称之为array1。 现在,是否可以使用arrays1的元素初始化2D数组? (即char array2[array[0]][array[1]];) 我已经试过了,程序开始变得怪异。我还尝试将元素的值移动为整数,然后使用整数作为数组大小。这种方法也不起作用 请给出如何实现此功能的建议?只有在编译时已知数组的第二维度时,才能使用数组初始化语法初始化2D数组 例如: // Create a 1 x 2 array. char array2[]

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

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


请给出如何实现此功能的建议?

只有在编译时已知数组的第二维度时,才能使用数组初始化语法初始化2D数组

例如:

// 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]}};

您可以在函数中将数组初始化为可变大小,因为函数在堆栈上分配内存。然而,如果事情表现得很奇怪,那么指针可能会有问题,或者会越界。需要查看代码。问题太模糊和笼统了,您还没有显示错误代码。如果C99或更高版本,则可能重复。