如何在不知道维度的情况下声明二维数组? [已关闭]

问题描述 投票:0回答:1

我有一个 C 编程作业,其中我必须从文本文件中读取并将输入存储在二维数组中。但是,文本文件仅包含矩阵,不存储有关行和列的信息。我的程序将使用多个输入进行测试,因此二维数组不应具有固定大小。然而,这个矩阵保证是平方矩阵。我已经在互联网上搜索了几个小时,但我无法找到解决方案。当使用多个输入文件进行测试时,如何将该矩阵存储在具有动态维度的二维数组中?

c multidimensional-array dynamic-memory-allocation
1个回答
3
投票

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

您的矩阵保证是正方形,因此这意味着您将拥有与相同数量的。 这意味着您只需扫描第一行即可知道需要多少行多少列。

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

n1, n2

n3, n4

只需以纯文本形式读取文件,计算在行尾之前找到了多少个分隔符。 在本例中,您在第一行中发现了 1 个逗号,这显然意味着您有 2 个条目,因此有 2 列 x 2 行;如果有 3 个逗号,则将有 4 个条目,因此有 4 列 x 4 行。

n1, n2, n3, n4



n5, n6, n7, n8



n9, n10, n11, n12



n13, n14, n15, n16



从那里,您只需

malloc

 一个您刚刚计算的大小的 n × n 数组。

© www.soinside.com 2019 - 2024. All rights reserved.