如何在不知道尺寸的情况下声明二维数组?

时间:2017-10-13 23:46:39

标签: c multidimensional-array dynamic-allocation

我有一个C编程分配,我必须从文本文件中读取并将输入存储在2d数组中。但是文本文件只包含矩阵,不存储有关行和列的信息。我的程序将使用几个输入进行测试,因此2d数组不应具有固定大小。但这个矩阵保证是方形的。我已经在网上搜了几个小时,但无法找到解决方案。那么如何在使用多个输入文件进行测试时将此矩阵存储在具有动态尺寸的二维数组中?

1 个答案:

答案 0 :(得分:2)

注意: 从措辞来看,这似乎是一个功课问题。因此,我不会发布任何直接代码。

您的矩阵保证为正方形,这意味着您将与具有相同数量的。这意味着您只需要扫描第一行,以便了解需要多少行。

让我们假设您的矩阵将存储在.csv(逗号分隔变量)文件中。您的数据是

n1, n2

n3, n4

只需将文件作为纯文本阅读,计算在行结束之前找到的分隔符 。在这种情况下,您在第一行中找到1个逗号,这显然意味着您有2个条目,因此有2列2行;如果你有3个逗号,你将有4个条目,因此有4列4行。

n1, n2, n3, n4

n5, n6, n7, n8

n9, n10, n11, n12

n13, n14, n15, n16

从那里开始,你只需要malloc一个你刚刚计算出来的n个n数组。