【发布时间】:2016-01-04 19:40:39
【问题描述】:
如果是整数,我正在尝试分配一个新数组(请参阅下面的 HwGrades 分配) 当我设置 HwNum=2 时,新函数只创建一个大小为 1 的数组! 当 for 循环迭代 2 次时,它不会给我访问冲突 帮助将不胜感激..
这是构造函数
EE_Course::EE_Course(int Course_ID, char * Course_Name, int Hw_Num, double Hw_Weigh,int Factor_)
{
CourseID = Course_ID;
CourseName = new char[strlen(Course_Name) + 1];
strcpy(CourseName, Course_Name);
HwNum = Hw_Num;
HwWeigh = Hw_Weigh;
HwGrades = new int [HwNum]; // STARTING FROM HERE
for (int i = 0; i < Hw_Num; i++) { //UNTIL HERE
HwGrades[i] = 0;
}
Factor_ = 0;
ExamGrade = 0;
}
这些是课程类的私有变量:
protected:
int CourseID;
int HwNum;
char* CourseName;
double HwWeigh;
int ExamGrade;
int* HwGrades;
};
【问题讨论】:
-
你怎么知道size是1?
-
有什么理由不能使用 std::vector?这将简化事情。
-
观察窗口中的@seleciii44
-
作为一种风格:一旦你分配给
HwNum,你应该只使用它而不是交替回Hw_Num。 -
知道!它并没有显示全部。它只显示第一个元素的地址。这就是为什么你只看到一个。如果它是一个数组(不是指针),您可以看到所有元素。