gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:06 25 4
gpt4 key购买 nike

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

#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/

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