在最后一个索引处失败的结构数组 #包括 #包括 #包括 结构学生 { int-id; 字符名[30]; 浮动百分比; }; int main() { int i; 结构学生记录[2]; //第一名学生记录 记录[0]。id=1; strcpy(记录[0]。名称,“Raju”); 记录[0]。百分比=86.5; //第二名学生记录 记录[1]。id=2; strcpy(记录[1]。名称,“Surendren”); 记录[1]。百分比=90.5; //第三名学生记录 记录[2]。id=3; //strcpy(记录[2]。名称,“Thiyagu”);//-->此行中的错误 //记录[2]。百分比=81.5;//-->此行中的错误 for(i=0;i)中断了代码。现在这一行和下面的一行都被注释掉了,因为代码没有与它们一起执行。我感觉它与空终止符有关。
在最后一个索引处失败的结构数组 #包括 #包括 #包括 结构学生 { int-id; 字符名[30]; 浮动百分比; }; int main() { int i; 结构学生记录[2]; //第一名学生记录 记录[0]。id=1; strcpy(记录[0]。名称,“Raju”); 记录[0]。百分比=86.5; //第二名学生记录 记录[1]。id=2; strcpy(记录[1]。名称,“Surendren”); 记录[1]。百分比=90.5; //第三名学生记录 记录[2]。id=3; //strcpy(记录[2]。名称,“Thiyagu”);//-->此行中的错误 //记录[2]。百分比=81.5;//-->此行中的错误 for(i=0;i)中断了代码。现在这一行和下面的一行都被注释掉了,因为代码没有与它们一起执行。我感觉它与空终止符有关。,c,C,struct student record[2];表示数组有2个项。有效索引为0和1 试图访问记录[2]原因。struct student record[2];表示数组有2项。有效索引为0和1 试图访问记录[2]原因。您正在将三个项目放入一个包含两个项目(即0、1、2)的数组中。计算机开始计数为零就像Ed所说的,没有记录[2]。我知道它们从0开始。数组大小为记录[2],这意味着它有0、1、2!struct student record[2]您知道这会创建大小为2的数组,不是吗?它的容量是2个结
struct student record[2];
表示数组有2个
项。有效索引为0
和1
试图访问
记录[2]
原因。struct student record[2];
表示数组有2
项。有效索引为0
和1
试图访问
记录[2]
原因。您正在将三个项目放入一个包含两个项目(即0、1、2)的数组中。计算机开始计数为零就像Ed所说的,没有记录[2]。我知道它们从0开始。数组大小为记录[2],这意味着它有0、1、2!struct student record[2]
您知道这会创建大小为2的数组,不是吗?它的容量是2个结构,而不是索引停止在2。@RT89是的,您甚至可以做记录[200000];
对于未定义的行为,编译的东西并不意味着它的正确性。您将三个项放入两个项(即0、1、2)的数组中。计算机从零开始计数就像Ed说的,没有记录[2]。我知道它们从0开始。数组大小是记录[2],这意味着它有0,1,2!struct student record[2];
你知道这会创建大小为2的数组,不是吗?它的容量是2个结构,而不是索引停止在2。@RT89是的,你甚至可以做record[200000];
对于未定义的行为,编译的内容并不意味着它正确。我认为记录[2]可以作为0,1,2工作。我将其更改为3,工作正常。谢谢我认为记录[2]可以作为0,1,2工作。我将其更改为3,工作正常。谢谢
#include <stdio.h>
#include <string.h>
#include <string.h>
struct student
{
int id;
char name[30];
float percentage;
};
int main()
{
int i;
struct student record[2];
// 1st student's record
record[0].id=1;
strcpy(record[0].name, "Raju");
record[0].percentage = 86.5;
// 2nd student's record
record[1].id=2;
strcpy(record[1].name, "Surendren");
record[1].percentage = 90.5;
// 3rd student's record
record[2].id=3;
//strcpy(record[2].name, "Thiyagu");//--->Bug in this line
//record[2].percentage = 81.5;//--->Bug in this line
for(i=0; i<3; i++)
{
printf(" Records of STUDENT : %d \n", i+1);
printf(" Id is: %d \n", record[i].id);
printf(" Name is: %s \n", record[i].name);
printf(" Percentage is: %f\n\n",record[i].percentage);
}
return 0;
}