我想打印动态数组索引大小
'InputData'函数生成三个动态数组。我想在主函数中获取数组索引大小。
例如,int arr[10]->gt;索引大小为10我想要另一种方法来获得大小,而不是制作一个新的数组来记忆它。
这是我有的代码
struct Subject {
char SubName[30];
char Grade[10];
float GPA;
};
struct Student {
char StdName[30];
Subject* Sub;
};
int SubNum;
Student Std[3];
Subject* Sub;
void InputData(Student* stu)
{
for(int i=0; i<3;i++{
cin >> SubNum;
stu[i].Sub = new Subject[SubNum];
}
}
int main()
{
InputData(Std);
cout<< //want to print out dynamic array index size
}
如何在C++中获取动态数组索引大小
我假设您的意思是数组的大小。
一般来说;得到";动态数组的大小。你需要做的是把尺寸储存在某个地方。例如,在一个变量中。然后你可以"得到";通过访问存储的对象来调整大小。
事实上,你就是这么做的。您将大小存储在变量SubNum
中,您可以像这样打印大小:
std::cout << SubNum;
当然,您为每个数组覆盖这个变量,所以在循环之后,您只存储了最后一个数组的大小。您需要分别存储每个尺寸,以便以后可以访问所有尺寸。
在您的示例中,您泄漏了所有的动态数组。我建议不要使用拥有裸指针。我建议使用std::vector
。std::vector
会为您记录尺寸。