gpt4 book ai didi

创建动态结构数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:02 24 4
gpt4 key购买 nike

我需要创建一个结构数组,但我必须从文件中读取数组大小。我的问题是我可能完全错误地使用了指针。我不能使用全局变量。这是我编写的代码:

#include <stdio.h>
#include <stdlib.h>
struct driver
{
int *amount;
int ADT1[9];
int ADO1[9];
};

struct driver totaldrivers[*amount];

我得到的错误 (2) 是“此处未声明的数量(不在函数中)”和“'totaldrivers' 的存储大小未知”。我尝试直接给 *amount 一个值,但没有运气,即使如此,数量也必须由用户创建的文件获取,数字是第一行。这就是我的问题所在。 (.txt)文件格式为:

4(条目数量)
123456789 , 978675645 (ADT1,ADO1)
.
.
.
我确信我犯了新手错误,所以如果问题很愚蠢,请原谅我。

最佳答案

我假设你的结构的内容应该如下(我已经删除了 int *amount):

struct driver
{
int ADT1[9];
int ADO1[9];
};

要创建这些结构的动态一维数组,首先创建一个指向 driver 的一维数组的指针:

struct driver *pDriver;

接下来,为数组中所需的元素数量分配内存。这应该是已知的(N):

pDriver = malloc(N * sizeof(*pDriver));

如果你想记录元素的数量,你应该这样做:

struct driver
{
int ADT1[9];
int ADO1[9];
};

struct driverArray
{
int numDrivers;
struct driver *pDriver;
};

struct driverArray driverArr;

driverArr.numDrivers = N;
driverArr.pDriver = malloc(driverArr.numDrivers * sizeof(*driverArr.pDriver));

关于创建动态结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com