C - инициализировать массив структур

У меня проблема с инициализацией массива структур. Я не уверен, что делаю это правильно, потому что я получаю «инициализацию из несовместимого типа указателя» и «присвоение из несовместимого типа указателя». Я добавил в код, в котором получаю эти предупреждения, и когда я пытаюсь распечатать данные из структуры, я получаю мусор, например @@ ###

typedef struct
{
    char* firstName;
    char* lastName;
    int day;
    int month;
    int year;

}student;

// инициализирую массив

    student** students = malloc(sizeof(student));
    int x;
    for(x = 0; x < numStudents; x++)
    {
        //here I get: "assignment from incompatible pointer type" 
        students[x] = (struct student*)malloc(sizeof(student));
    }

    int arrayIndex = 0;

// добавляю структуру

 //create student struct
        //here I get: "initialization from incompatible pointer type"
        student* newStudent = {"john", "smith", 1, 12, 1983};

        //add it to the array
        students[arrayIndex] = newStudent;
        arrayIndex++;
17
задан Tony 13 November 2010 в 16:35
поделиться