Я пытаюсь заполнить структуру данными файла.Заполнение структуры данными в файле
Файл отделяется с двойной точкой, как это:
string1:15
Когда я прочитал файл и заполнить поля на структуры с данными я получаю Segmentation Fault.
Здесь структура файла character.h:
#ifndef CHARACTER_H_
#define CHARACTER_H_
typedef struct Character *Personaje;
struct Character{
char name[20];
int lvl;
};
extern void saveCharacter(char *name, int lvl);
extern Personaje *getCharacter();
extern char *toString(Personaje *pj);
#endif
и здесь функция в исходном файле character.c:
Personaje *getCharacter(){
FILE *fp;
Personaje *salida = (Personaje*) malloc(sizeof(Personaje));
fp = fopen("kprct", "rb");
fscanf(fp, "%[A-Za-z]:%d", (*salida)->name, &((*salida)->lvl));
printf("Linea: %s : %d\n", (*salida)->name, (*salida)->lvl);
fclose(fp);
return salida;
}
Как я могу заполнить-структуру с файлом данные?
Стандартное предупреждение: не отбрасывают '' недействительным *, возвращаемый 'malloc' и друзьями! – Olaf
Вы не ограничиваете размер массива, который вы читаете. Это приглашение на переполнение буфера (иначе: неопределенное поведение). – Olaf
там нет malloc для вашей структуры 'Character', если я не ошибаюсь. – Dleep