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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте. Имеется файл, в котором 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2014, 14:25
Ответы с готовыми решениями:

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

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

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

3
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2014, 14:48
Цитата Сообщение от АлександрКом Посмотреть сообщение
Имеется файл, в котором 6 чисел типа double.
формат исходного файла показать можете?
Цитата Сообщение от АлександрКом Посмотреть сообщение
long сделал, чтобы числам из файла точно хватило места
Вот это вообще не понял.
Цитата Сообщение от АлександрКом Посмотреть сообщение
fread(&Q[j], sizeof(double), 1, f);
Писать в целочисленную переменную вещественную не хорошо.
0
1298 / 927 / 449
Регистрация: 21.10.2012
Сообщений: 2,604
11.03.2014, 15:16  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
формат исходного файла показать можете?
Ээм я его просто как бинарный файл создал, там 6 чисел..
Цитата Сообщение от Tulosba Посмотреть сообщение
Вот это вообще не понял.
Ну как я мыслил - я заранее не знаю, какого типа переменные хранятся в файле. Если там double, а у меня программа будет написана для считывания int, то т.к. размер double больше int, то числа не будут считываться, т.к. не поместятся в отведенное им место в памяти. И у меня был вопрос - какого типа нужно создать переменную, чтобы уж точно поместились числа
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2014, 15:23
Цитата Сообщение от АлександрКом Посмотреть сообщение
Если там double, а у меня программа будет написана для считывания int
то это уже неправильно. Выделите например первый байт на признак того, что расположено следом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2014, 15:23
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru