gpt4 book ai didi

c - 在 C 中定义结构数组?

转载 作者:行者123 更新时间:2023-12-04 06:08:04 24 4
gpt4 key购买 nike

主文件

#define  DATA  struct   data
DATA
{
int id;
char data;
}

主文件
DATA *listOfData[100];

所以此时我将/应该能够像这样访问列表中的数据:
printf(listOfData[5]->data);

它不允许我这样做,运行只是在最后一次打印时卡住……没有错误或任何错误。

最佳答案

这是因为您已经定义了一个指针数组。但是您从未初始化任何指针。

所以:

printf(listOfData[5]->data);

将崩溃(未定义的行为),因为您正在取消引用索引 5 处的(无效)指针。

*(这是定义结构的一种非常奇怪的方式......)

要解决此问题,您需要为数组中的每个指针分配。如果您实际上并不需要它是一个指针数组,那么最好将它作为结构本身的数组:
DATA listOfData[100];

并将其访问为:
listOfData[5].data

然后您不必处理分配每个元素。

关于c - 在 C 中定义结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113442/

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