gpt4 book ai didi

c - C 中的结构体指针

转载 作者:行者123 更新时间:2023-11-30 17:17:55 25 4
gpt4 key购买 nike

typedef struct data * Data;

我有这样的事情我不明白。稍后我有一些返回数据的函数。我不明白的是, data * Data 在我看来就像一个“空”结构..它里面没有任何东西。

那么,当我执行诸如 Data d; 之类的操作时,我会创建什么?如果该结构为空,我会从函数返回什么?

谢谢。

最佳答案

这行代码正在创建一个类型别名。这意味着Datastruct data * 类型的别名。因此,每当您看到 Data 时,就好像您看到了一个指向 struct data 的指针。

当您执行诸如 Data d; 之类的操作时,您基本上是在声明一个指向 struct data指针。您没有初始化指针,因此它没有指向有效的结构数据。因此取消引用指针将是无效的。

当您有一个 Data 类型的变量时,您需要在尝试取消引用它之前将其指向有效的位置。

也许一种不太令人困惑的方法是这样做:

typedef struct data *Data_ptr;

这至少传达了 Data_ptr 是指针类型别名的想法。

关于c - C 中的结构体指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29333051/

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