C++ 如何在C++;

C++ 如何在C++;,c++,dynamic-arrays,C++,Dynamic Arrays,我想打印动态数组索引大小。 “InputData”函数可生成三个动态数组。我想在main函数中获取数组索引大小 例如,int arr[10];->>索引大小为10 我想用另一种方法来获得大小,而不是制作一个新的数组来记忆它 这是我的代码 struct Subject { char SubName[30]; char Grade[10]; float GPA; }; struct Student { char StdName[30]; Subject* Su

我想打印动态数组索引大小。
“InputData”函数可生成三个动态数组。我想在main函数中获取数组索引大小

例如,int arr[10];->>索引大小为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
}
struct主题{
char子名称[30];
炭级[10];
浮动GPA;
};
结构学生{
char StdName[30];
主题*Sub;
};
内亚微米;
学生性病[3];
主题*Sub;
无效输入数据(学生*stu)
{
对于(int i=0;i>SubNum;
stu[i].Sub=新科目[SubNum];
}
}
int main()
{
输入数据(Std);
库特
如何在C语言中获得动态数组索引大小++

我假设你指的是数组的大小

通常无法“获取”动态数组的大小。您需要做的是将大小存储在某个位置。例如,在变量中。然后,您可以通过访问存储的对象来“获取”大小

事实上,这就是您所做的。您将大小存储在变量
SubNum
中,您可以这样打印大小:

std::cout << SubNum;

std::在使用
new[]
时,您是否必须自己跟踪块的大小(向
Student
结构添加另一个成员)。更好的方法是使用STL容器,如
std::vector
。这能回答您的问题吗?谢谢您的回答。存储大小意味着使用数组?@M.K。我添加了更多详细信息。哦,我现在明白了。谢谢您的帮助。