gpt4 book ai didi

c++ - int 数组 C++ 的大小

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:58 24 4
gpt4 key购买 nike

如果是整数,我正在尝试分配一个新数组(请参阅下面的 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;

}

那些是类(class)类私有(private)变量:

protected:
int CourseID;
int HwNum;
char* CourseName;
double HwWeigh;
int ExamGrade;
int* HwGrades;

};

最佳答案

如果它是一个指针,调试器不会显示整个数组。它显示数组的地址和数组指向的第一个元素。所以您的代码没有任何问题。

如果它被定义为一个数组,你可以看到它:

int HwGrades[100]; 

如果你真的想使用指针并查看它的内容,你有两个选择:

  1. 将其定义为一个数组,对其进行调试,修复/验证您的代码并返回指针。

  2. 我不知道你的环境是什么,但通常有一个内存 View 选项。您可以随时检查数组中的内容。只需打开 IDE 的内存 View 并观察指针的地址。

编辑:

显然还有第三个(也是最好的)选项。参见 Rabbi Shuki's answer .

关于c++ - int 数组 C++ 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598595/

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