C中的指针使用Malloc分配数组?
我在这项运动中遇到了一些问题。这个程序的工作方式是用户输入数据集的数量,比如说3。然后用户输入浮点数,然后输入浮点数,然后按enter键输入第二个和第三个数据集。因此,输入示例如下 输入数据集的数量:3C中的指针使用Malloc分配数组?,c,arrays,pointers,C,Arrays,Pointers,我在这项运动中遇到了一些问题。这个程序的工作方式是用户输入数据集的数量,比如说3。然后用户输入浮点数,然后输入浮点数,然后按enter键输入第二个和第三个数据集。因此,输入示例如下 输入数据集的数量:3 3 12.5 3.4 6.7 5 7.7 5.5 8.8 3.3 5.7 289.384.5 之后,用户选择要对数据2执行操作的数据,即[5 7.7 5.5 8.8 3.3 5.7] 然后返回数字的最大值 因为我们不知道数据集的数量,所以我们必须使用一个动态分配的数组,就像我在代码中所做的那样,
3 12.5 3.4 6.7
5 7.7 5.5 8.8 3.3 5.7
289.384.5 之后,用户选择要对数据2执行操作的数据,即[5 7.7 5.5 8.8 3.3 5.7] 然后返回数字的最大值 因为我们不知道数据集的数量,所以我们必须使用一个动态分配的数组,就像我在代码中所做的那样,并让指针指向该数组以找到该特定数据集的最大值。我想我需要两个数组,一个用来跟踪数据,另一个用来跟踪集合。这是我的密码 我在gettingData方法中遇到了问题,我希望用户的输入被放入
在该数组中,但当我打印指针指向的内容时,返回0.0000,这是不准确的。您似乎忘记了一件事:在尝试读取代码中的任何变量之前,必须对其进行初始化。通常,可以通过两种指令实现初始化:
- 赋值指令,即
。注意,为了给a=expression
赋值,必须首先获得a
表达式的值,因此必须首先初始化
表达式中使用的任何变量
- 将变量的地址(
)传递给函数,该函数在给定地址下放置一个值(通过写入&a
)。与前面一样,*a=expr
不能使用任何未初始化的变量expr
释放malloc
分配的内存!如果你对为什么感兴趣,请阅读
正如@Aubin所说,您没有向gettingData
函数传递足够的参数
重要提示:当使用一个好的编译器(例如gcc
,clang
)时,最好使用-Wall
标志,该标志会发现像这样的简单错误,并在您有机会运行代码之前警告您。程序员一生都会犯这样的错误,-Wall
flag每天为全人类节省大量时间。我认为我们不应该在这里为您编码,但我可以为您共享的代码提供一些建议(这些代码有太多问题)
- 您的主数据库中似乎有一个未使用的变量datasetsize
功能(但仍在打印中)
- 如果您使用的是malloc,那么应该释放这些分配的内存。
请参阅free()函数
- 您可能希望最终使用%f而不是%d,因为您将使用浮点值
- 如果您要定义一个具有三个参数的函数,为什么要定义它
只用两个
- 等等
在逻辑清晰之前避免编写任何代码是一种很好的做法。流程图、序列图或任何UML文档可能会有所帮助。我们的想法是花时间思考实现目标的最有效方法,因此,编码可以是最简单的部分。请发送您用于测试的代码,或者我们可以做些什么。请参见标准StackOverflow文档页面中的如何提问。不这样做可能会触发“非编程问题”标志,您的问题将被关闭。