Поскольку b.z
не был установлен, чтобы указать где-либо полезное. В настоящее время это просто указатель NULL
. *
Вам нужно сделать что-то вроде:
b.z = malloc(sizeof(*b.z));
сначала (т.е. создать реальный объект).
Не забудьте free
это в какой-то момент.
<ч />
* Обратите внимание, что это только NULL
, поскольку b
объявлено как static
. Если бы b
не было static
, оно указывало бы на случайное место в памяти.