C++ 返回指向动态数组中最年轻学生的指针

C++ 返回指向动态数组中最年轻学生的指针,c++,pointers,struct,C++,Pointers,Struct,我目前正在尝试编写一些函数,该函数将遍历一个动态数组,该数组以这种格式保存学生记录: 姓名ID年龄 一旦该函数找到最年轻的年龄,将其作为指向主函数的指针返回并输出 问题是函数是学生型的,这是我的结构;格式如下: struct Student{ string name; string id; int age; }) 我正在努力返回指针(ptr)并将其输出到控制台,因为当前它输出的(我认为)是内存位置 这是我到目前为止的代码 任何建议都会很有帮助 结构: struct Student{ strin

我目前正在尝试编写一些函数,该函数将遍历一个动态数组,该数组以这种格式保存学生记录:

姓名ID年龄

一旦该函数找到最年轻的年龄,将其作为指向主函数的指针返回并输出

问题是函数是学生型的,这是我的结构;格式如下:

struct Student{
string name;
string id;
int age;
})

我正在努力返回指针(ptr)并将其输出到控制台,因为当前它输出的(我认为)是内存位置

这是我到目前为止的代码

任何建议都会很有帮助

结构:

struct Student{
string name;
string id;
int age;
})

函数调用:

cout << "Youngest: " << youngest(student_Dynamic, sizeOf) << endl;

cout您正在返回指针,这就是正在打印的内容。应该是这样的:

Student * s = youngest(student_Dynamic, sizeOf);
cout << "Youngest: " << s->name << endl;
Student*s=最小的(Student\u动态,sizeOf);

难道
s
真的是表示
Student
对象数组的最佳名称吗?另外,为什么要创建一个新的
Student
对象,而不是返回数组中现有的
Student
对象的指针?我不太清楚您想要实现什么,但是如果您只想要最低年龄,为什么不从
最年轻的()返回
int
method?@puelo他想将指针返回到年龄最低的学生。但是,他正在函数中创建一个新的student记录,因此它不会指向相同的
student
,即使值可能相同。这上面写满了内存泄漏。我很清楚,但别人不会清楚;为小费干杯。但是你对如何解决手头的问题有什么建议吗?干杯您期望的控制台输出是什么?你只是简单地输出内存地址,因为那是存储在指针中的。啊,这对我很有用!非常感谢!你能解释一下学生在函数调用开始时在做什么吗?它是否创建了一个指向函数的指针,并且s将返回任何值?sizeOf是我的数组的大小(所以没有越界等…)+1,这是非常棒的帮助!如果你看橘子的话?在编写答案时,您可以看到有关格式化代码块的更多信息。
Student * s = youngest(student_Dynamic, sizeOf);
cout << "Youngest: " << s->name << endl;