这个就是访问了不能访问的内存scanf("%s %f %f %s",&list[i].name,&list[i].price,&list[i].sales,list[i].intro);这里name已经是指针了,不需要&取地址
printf("\n %-20s % -20.2f % -20.2f %-20s,list[i].price,list[i].sales,list[i].intro");scanf("%d,&choice");