这个就是访问了不能访问的内存
scanf("%s %f %f %s",&list[i].name,&list[i].price,&list[i].sales,list[i].intro);
这里name已经是指针了,不需要&取地址
语法没错,调试时输入后,跳出一个提示“Unhandled exception 0xC0000005;Access Violation”
直接运行时,输入后,自动停止程序。
C语言调试时出现Unhandled exception 0xC0000005;错误 的意思是访问非法内存。
char *a="i a student",*b="you are a teacher";
改成 char a[]="i a student",b[]="you are a teacher";
这样才是分配了内存。
原来只是指向字符常量的指针,没有分别合法内存。
还有:请一定要注意,尽量避免传递字面常量为函数的参数。