Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2014, 17:11   #1
xotonic
 
Аватар для xotonic
 
Регистрация: 07.04.2013
Сообщений: 8
Злость [C] malloc, fscanf и char*

Заполняю массив структур из файла с динамическим выделением памяти:
Код:
 
int ReadFromFile(const char * s, student * b[max])
{
	FILE * f=fopen(s,"rt");
	if (!f) return 0;
	for (int i = 0; (i < max)&!(feof(f)); i++)
	{
		b[i] = (student*)malloc(sizeof(student));
		fscanf(f, "%s %d %d\n",&b[i]->name, &b[i]->year, &b[i]->grant);
	}

	fclose(f);

	return 1;
}
Однако, когда обращаюсь к строке массива после заполнения, выскакивает ошибка нарушения прав доступа.
Сама структура:
Код:
struct student
{
	char * name;
	int year;
	int grant;
	
}*db[max];
Формат записи данных в файле:
<фамилия> <курс> <стипендия>

Не могу понять в чем ошибка: недостаточно выделил памяти или fscanf криво читает строку(как мне известно она читает строку до пробела)?

Последний раз редактировалось xotonic; 23.05.2014 в 17:15.
xotonic вне форума Ответить с цитированием
Старый 23.05.2014, 19:12   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

[i]b = (student*)malloc(sizeof(student));

ну ты здесь выделил память под одну запись student, молодец.

[i]fscanf(f, "%s %d %d\n",&b[i]->name, &b[i]->year, &b->grant);

а кто будет память выделять под строкy, Пушкин? :D
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fscanf, работа с файлами, C++ Lizoveta Помощь студентам 0 25.11.2013 19:52
fscanf и загрузка параметров Berlioz Общие вопросы C/C++ 0 16.12.2012 14:43
fscanf Артэс Общие вопросы C/C++ 2 04.10.2011 11:54
Аналог функции fscanf (C++) Andrey_k Помощь студентам 7 10.03.2011 19:59
выборка строк fscanf peplenko Общие вопросы C/C++ 7 06.09.2010 21:52