Когда я пытался скомпилировать следующую программу, она не выдает вывод на экран:
#include<stdio.h>
int main ()
{
struct d1
{
char arr [10];
int num;
};
struct d2
{
struct d1 name;
int age;
}p1;
p1.name={("JANE",8)};
printf ("%s",&p1.name.arr[0]);
}
Я думаю, что проблема связана со строкой p1.name={("JANE",8)};
Но я думаю, что все написал правильно.Написав эту строку, я попытался присвоить значение члену "name"
переменной p1
, имеющей тип структуры d2
.И поскольку name
сама является структурой типа d1
, имеющей два члена, я назначил два значения JANE
и 8
для arr [10]
и num
членов name
соответственно.
Я даже пытался с
p1.name={{"JANE",8}}; //For this it gives error
p1.name={("JANE",8),20}; //For this it compiles but no output
p1.name={{"JANE",8},20}; //again error
То, что 20
является значениемp1's
член "age"
.При попытке вывести значение p1.name.age
вместо 20
выдает 0
.
Что не так?Есть ли синтаксическая ошибка или концептуальная ошибка?