проблема в malloc - PullRequest
       1

проблема в malloc

1 голос
/ 04 декабря 2010

Я пытаюсь применить malloc в своем коде, но все еще возникают проблемы, появляется ошибка: «запрос на идентификатор элемента в чем-то, что не является структурой или объединением».

что я хочу сделать, это использовать malloc вместо массива .. и сохранять структуру в каждом индексе, я пробовал array [i] -> id, но куча мусорных символов хранится в моем текстовом файле. Я также увеличиваю i и не использую цикл, потому что пользователь может вводить только один раз ... это мой код:

#include<stdio.h>
#include<stdlib.h>
struct studentinfo{
       char id[8];
       char name[30];
       char course[5];
}s1;
main(){
    int i=0;
    FILE *stream = NULL;
    stream = fopen("studentinfo.txt", "a+");    
    struct studentinfo *array[50];

    array[i] = (struct studentinfo*) malloc(sizeof(struct studentinfo));
       printf("Enter Student ID: ");
       scanf("%s", array[i].id);
       fflush(stdin);
       printf("Enter Student Name: ");
       gets(array[i].name);
       fflush(stdin);
       printf("Enter Student Course: ");
       scanf("%s", array[i].course);

       fprintf(stream, "\n%s,\t%s,\t%s", array[i].id, array[i].name, array[i].course);
       i++;
       fclose(stream);
       free(array);
    getch();
}

надеюсь, вы можете мне помочь ... заранее спасибо:)

Ответы [ 2 ]

5 голосов
/ 04 декабря 2010

Вы неправильно обращаетесь к свойствам.

array[i]

- указатель на структуру, поэтому

array[i].id

собирается дать вам ошибку. Используйте

array[i]->id

разыменованию.

3 голосов
/ 04 декабря 2010

Вы должны инициализировать массив и освободить его следующим образом: Правильно ли я использую malloc?
Также ... следуйте инструкциям Зурана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...