i got confused about the structure when i need to to pass the value in a function
#include <iostream>
using namespace std;
struct student
{
    int studentID;
    char studentName[30];
    char nickname[10];
};
void read_student(struct student *);
void display_student(struct student *);
int main()
{
    student *s;
    //struct student *ps;
    read_student(s);
    display_student(s);
}
void read_student(struct student *ps)
{
    int i;
    for (i = 0; i <= 2; i++)
    {
        cout << "Enter the studentID : ";
        cin >> ps->studentID;
        cout << "Enter the full name :";
        cin.ignore();
        cin >> ps->studentName;
        cout << "Enter the nickname : ";
        cin.ignore();
        cin >> ps->nickname;
        cout << endl;
    }
}
void display_student(struct student *ps)
{
    int i;
    cout << "student details :" << endl;
    for (i = 0; i <= 2; i++)
    {
        cout << "student name : " << *ps ->studentName << " (" << &ps ->studentID << ")" << endl;
        ps++;
    }
}
its only problem at the variable at line 19 and when i try to edit it will became more problem
student *s; //struct student *ps; //struct student *ps; read_student(s); display_student(s);
also can someone explain how to transfer pointer value of structure to the function and return it back to the main function
 
    