Pro*_*Pus 0 c arrays struct char
我无法理解如何在数组结构中初始化char数组.我写了这段代码:
typedef struct tomo
{
char titolo[100];
char autore[100];
int anno_pubblicazione;
float prezzo;
} t_libro;
main(){
t_libro biblio[2];
biblio[0] = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
biblio[1] = {"Harry Potter e la Pietra Filosofale", "J.K.Rowling", 2003, 12.5};
}
Run Code Online (Sandbox Code Playgroud)
但是当我编译时,它告诉我在'{'表达式之前预期.我怎么解决它?这些char数组给了我很多问题......
PS我也试过用
biblio[0].titolo = "Guida al C";
Run Code Online (Sandbox Code Playgroud)
并以这种方式对于struct的其他字段,但也以这种方式我有一个错误.
biblio[0] = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
Run Code Online (Sandbox Code Playgroud)
那不是初始化.这是一个简单的任务.您只能在初始化中使用初始化语法.它看起来像这样:
t_libro biblio[] = {
{"Guida al C", "Fabrizio Ciacchi", 2003, 45.2},
{"Harry Potter e la Pietra Filosofale", "J.K.Rowling", 2003, 12.5}
};
Run Code Online (Sandbox Code Playgroud)
你试图写
biblio[0].titolo = "Guida al C";
Run Code Online (Sandbox Code Playgroud)
失败,因为您无法分配给字符数组.您必须初始化它们,或使用类似的功能strcpy
.
你的main
声明也是错误的.它应该是
int main(void)
Run Code Online (Sandbox Code Playgroud)