为啥C语言报错写入位置时发生访问冲突

谢邀!
我觉得是IDE的问题,另外你代码的结构体有点问题,st是什么意思?不是st吗?

■网友
谢邀。
初始化结构体有问题
struct student st;
这里:
#include \u0026lt;stdio.h\u0026gt;struct student{ char name; int chinese; int math; double average;}st;int main(){ int i,n; printf("请输入学生个数\"); scanf("%d", \u0026amp;n); printf("请输入学生的姓名 语文成绩 数学成绩\"); for (i = 0; i \u0026lt; n; i++) { scanf("%s %d %d", st.name, \u0026amp;st.chinese, \u0026amp;st.math); st.average = (st.chinese + st.math ) / 2.0; } for (i = 0; i \u0026lt; n; i++) printf("%s 平均成绩为:%f\", st.name, st.average); //system("pause"); return 0;}

为啥C语言报错写入位置时发生访问冲突


为啥C语言报错写入位置时发生访问冲突


■网友
很大程度可能是IDE的关系,不知道你用的什么编译器,看sprintf_s貌似是微软的一套东西,而且对于结构体纯c和c++,处理方式不太一样,个人在项目中感觉是个坑。而且你在声明student st【100】这里应该只是声明而没有初始化。我记得标c里面结构图这里需要malloc一下。你改成 student *st;st=(student *)malloc(sizeof(student)*100);//申请空间再用,貌似vs2005编译器优化过结构体数组不用malloc(我记不太清了)。
■网友
走读了你的代码,没什么毛病。
【为啥C语言报错写入位置时发生访问冲突】 可能是编译器的原因吧。


    推荐阅读