我需要帮助来解决一个练习。
#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/