c - 关于 C 中 struct of struct 的信息

标签 c arrays struct typedef

我需要帮助来解决一个练习。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct p_prodotto {
    char *costo;
    char *quantita;
};

typedef struct p_prodotto id_prezzo;

struct partecipante {
    id_prezzo *prezzo;
    unsigned short codice;
};

struct partecipante persona[1] = {{{"We", "Ciao"},100}};

int main()
{
    printf ("%s", persona[0].prezzo.costo); // This doesn't works
    return 0;
}

我有一个结构 p_prodotto,里面有两个字符指针。有 typedef,然后有另一个调用上述结构类型的结构“partecipante”。

这是结构的结构吗?如果是这样,我需要创建一个数组。我是这样做的:

struct partecipante persona[1] = {{{"We", "Ciao"},100}};

我做错了吗?如果正确,我如何访问“costo”和“quantita”字段?

在此先感谢您的帮助。

最佳答案

struct partecipante persona[1] = {{{"We", "Ciao"},100}};

将结构的第一个成员初始化为 struct p_prodotto,但它被声明为指向它的指针。将 struct partecipante 更改为

struct partecipante {
    id_prezzo prezzo;
    unsigned short codice;
};

或者以不同的方式初始化它。

例如

id_prezzo prz = {"We", "Ciao"};
struct partecipante persona[1] = {{&prz,100}};

int main()
{
    printf ("%s", persona[0].prezzo->costo);
    return 0;
}

如果你不能改变struct p_prodotto的定义。

关于c - 关于 C 中 struct of struct 的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264336/

相关文章:

c - 如何在c中为未知字符串长度分配内存

c - 用C语言将二叉树结构写入文件

javascript - 在 Javascript 中按子数组键的长度对数组进行排序

c - 如何在 C 中使用相同的结构创建线程

c++ - 如何调整 vector 迭代器以返回结构?

c - 读取文件内容到内存,32位操作系统和64位操作系统结果不同

c - 检测何时在 C 中连接了 USB 设备

javascript - 我有一个这样的 JSON 响应,但由于某种原因我无法访问该值

php - 如何在 PHP 中使用 array_fill 函数创建数组?

c - 如何在 C 中将结构体添加到结构体数组中?