Я вижу некоторые проблемы в вашем коде:
1- Ваш код даже не скомпилируется на gcc.
2- Вы неправильно инициализируете свою структуру и работаете с POINTERS для структур, а не для реальных структур (вы оставляете заглушки, которые должны быть инициализированы чем-то вроде malloc вместо реальных структур)
3- Почему массив [1]? давайте просто снимем это и поработаем с простыми основами, одна простая запись для начинающих: -)
Давайте посмотрим на основную структуру:
struct partecipante {
id_prezzo *prezzo;
unsigned short codice;
};
id_prezo * prezzo указывает на структуру, но у нее нет места для хранения данных .... как я вижу, вы все еще изучаете основы, давайте снимем это * и заставим хранить реальные данные (за счет того, что более динамичный, который вам все равно не нужен сейчас , так как вы учитесь).
struct partecipante {
id_prezzo prezzo; // the partecipante struct now holds enough space to fit a id_prezzo inside it
unsigned short codice;
};
Исправление распределения основной структуры
struct partecipante persona; // Это место для ОДНОЙ персоны
Инициализация переменной persona внутри блока кода (в данном случае внутри main ()), а также исправление оператора printf
int main()
{
persona.prezzo.costo = "blabla this is costo";
persona.prezzo.quantita = "blabla this is quantita";
persona.codice = 123;
printf ("Costo is --> %s\n", persona.prezzo.costo); // This know WORKS!
return 0;
}
Я не буду публиковать готовый исходный код, так что вы можете сами поиграть с исправлениями и развиваться. Удачи!