gpt4 book ai didi

c - 奇怪的运行时错误,fprintf 写的比问的多

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:04 25 4
gpt4 key购买 nike

我有一个运行时错误,它从数组中写入的数据多于它应该打印 ID、AverageMarks 和 Status 的数据:

声明及其作用

char StudentStatus[10][7];

for(x=0;x<10;x++)
{
fprintf(OutputFile,"%d\t\t%d\t\t\t%s\n",StudentID[x],StudentAvg[x],StudentStatus[x]);
}

但是当它打印的时候

100 77 DismissActive
101 85 Active
102 88 Active
103 86 Active
104 85 Active
105 84 Active
106 84 Active
107 82 Active
108 92 Active
109 75 Dismiss

数组的填充方式:

for(x=0;x<NumOfStudent;x++)
{


if(StudentAvg[x]>80)
{
strcpy(StudentStatus[x],"Active");
printf(". ");
}
else
{
strcpy(StudentStatus[x],"Dismiss");
printf(". ");
}
}

其他语句工作正常,但第一个语句真的让我很困扰。有什么我编码错误的建议吗?

最佳答案

要允许终止 null,请将数组声明更改为:

char StudentStatus[10][8];

C 字符串以 null 结尾,因此字符串“Dismiss”至少需要 8 个字节的存储空间。

关于c - 奇怪的运行时错误,fprintf 写的比问的多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com