C语言使用结构体指针问题

问题遇到的现象和发生背景

引用指向不完整类型的指针

问题相关代码,请勿粘贴截图

fscanf(fp,"%d\t%s\t%d\t%d\t\n",&p->number,p->name,&p->shelf.life,&p->storage);

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

你是没给他分配内存吗?