Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1281 / 912 / 446
Регистрация: 21.10.2012
Сообщений: 2,588
1

Выделение памяти через malloc и считывание данных

11.03.2014, 14:25. Показов 1069. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Имеется файл, в котором 6 чисел типа double. В программе имеется 2 массива. В 1-ый записываю все числа из файла, стоящие на нечетных местах, а во 2-ой - всё, что на четных местах. В действительности я не должен знать, сколько чисел в массиве, поэтому я узнаю размер файла и выделяю половину этого размера каждому массиву через malloc. Не могу найти ошибку, значения чисел в массивах совсем не те. (long сделал, чтобы числам из файла точно хватило места)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
long* I;
long* Q;
int err=0;
int nFileLen;
FILE *f;
    f = fopen("C:\\Newfolder\\n", "rb");
    if (f == NULL){
        std::cout << "=(";
        err=1;
    }
    else {
        fseek(f, 0, SEEK_END);
        nFileLen = ftell(f);
        fseek(f, 0, SEEK_SET);
        I=(long*)malloc(nFileLen/2);
        Q=(long*)malloc(nFileLen/2);
        for (int j = 0; j < nFileLen / ( 2 * sizeof(double) ); j++) {
            fread(&I[j], sizeof(double), 1, f);
            fread(&Q[j], sizeof(double), 1, f);
        };
        fclose(f);
    };
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2014, 14:25
Ответы с готовыми решениями:

Выделение памяти malloc
Подскажите как мне выделить два массива через malloc, пробою вот так #include &lt;iostream&gt;...

Выделение памяти malloc
не работает пример из лекции , там пример на доске такой написан - #include &lt;stdlib.h&gt; int...

Выделение памяти malloc realloc
мне задачу поставили, надо не используя stl, загрузить из файла данные. r - строки с - это...

Динамическое выделение памяти malloc()
Здравствуйте! Cкажите пожалуйста, как узнать каков максимальный объем памяти, который может...

3
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2014, 14:48 2
Цитата Сообщение от АлександрКом Посмотреть сообщение
Имеется файл, в котором 6 чисел типа double.
формат исходного файла показать можете?
Цитата Сообщение от АлександрКом Посмотреть сообщение
long сделал, чтобы числам из файла точно хватило места
Вот это вообще не понял.
Цитата Сообщение от АлександрКом Посмотреть сообщение
fread(&Q[j], sizeof(double), 1, f);
Писать в целочисленную переменную вещественную не хорошо.
0
1281 / 912 / 446
Регистрация: 21.10.2012
Сообщений: 2,588
11.03.2014, 15:16  [ТС] 3
Цитата Сообщение от Tulosba Посмотреть сообщение
формат исходного файла показать можете?
Ээм я его просто как бинарный файл создал, там 6 чисел..
Цитата Сообщение от Tulosba Посмотреть сообщение
Вот это вообще не понял.
Ну как я мыслил - я заранее не знаю, какого типа переменные хранятся в файле. Если там double, а у меня программа будет написана для считывания int, то т.к. размер double больше int, то числа не будут считываться, т.к. не поместятся в отведенное им место в памяти. И у меня был вопрос - какого типа нужно создать переменную, чтобы уж точно поместились числа
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2014, 15:23 4
Цитата Сообщение от АлександрКом Посмотреть сообщение
Если там double, а у меня программа будет написана для считывания int
то это уже неправильно. Выделите например первый байт на признак того, что расположено следом.
0
11.03.2014, 15:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2014, 15:23
Помогаю со студенческими работами здесь

Выделение памяти с использованием malloc
Доброго времени суток :) В общем есть следующий класс: class Addres { char name; char street;...

Динамическое выделение памяти под структуру (malloc)
Нашел данное решение на этом форуме, но никак не могу понять как оно работает. Вот даны структуры:...

Выделение памяти malloc приводит к неправильным расчетам
Есть функция которая постоянно вызывается для расчетов. Она работает правильно, до тех пор пока я...

При выделении памяти через malloc, как создавать объекты ?
Выделяю память через malloc под 4 объекта, как их создать ? myClass * ptr = (myClass*)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru