Форум программистов, компьютерный форум CyberForum.ru

Динамически расширяющийся массив, считывание из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Связать файл с потоком, не уничтожая его http://www.cyberforum.ru/cpp-beginners/thread698281.html
Подскажите пожалуйста: как связать файл с потоком не уничтожая его. Делаю так: ofstream nm; nm.open("myfile.txt"); Пробовал вот так - nm.open("myfile.txt",ios::app); но тогда невозможно записать строку в начало файла.
C++ Вычислить сумму ряда. Результат является приближенным значением функции exp в точке X while do 1) Дано вещественное число X и целое число N (> 0). Найти значение выражения + X + X2/(2!) + … + XN/(N!) (N! = 1•2•…•N). Полученное число является приближенным значением функции exp в точке X. aliev_ravil, я, конечно, и следующую вашу тему разделю. и перименую. но и карточку вам выдам за нарушение правил форума. http://www.cyberforum.ru/cpp-beginners/thread698277.html
Найти сумму всех идущих подряд в начале последовательности нечетных чисел C++
дана последовательность из n целых вещественных чисел. первое число в последовательности нечетное найти сумму всех идущих подряд в начале последовательности нечетных чисел. условный оператор не использовать.
Найти исходное число на основании числа, полученного в результате манипуляций с цифрами исходного C++
решение в с++ В трехзначном числе X зачеркнули первую цифру. Когда оставшееся число умножили на 10, а произведение сложили с первой цифрой числа x то получилось число 564. найти x
C++ Не работает программа (структура и стек) http://www.cyberforum.ru/cpp-beginners/thread698232.html
Вот код: #include <cstdlib> #include <iostream> #include <stack> using namespace std; struct sport {
C++ Определить среднюю урожайность пшеницы по районам и по области в целом В области 20 районов. Площади, засеянные пшеницей (в гектарах), и урожай, собранный в каждом районе ( в центнерах), хранятся в двух массивах .Определить среднюю урожайность пшеницы по каждому району и по области в целом.#include "stdafx.h" #include <iostream> #include<conio.h> using namespase std; int _tmain(int argc, _TCHAR* argv) { int a; int b; int sum=0; int sr1,sr2; подробнее

Показать сообщение отдельно
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
15.11.2012, 11:31     Динамически расширяющийся массив, считывание из файла
Damn364, 1. Операция new возвращает указатель на выделенную область памяти. Мы в теле оператора if ( i == size )... присваиваем "старое значение" Data ( то есть адрес на выделенную ранее память ) переменной temp.
C++
1
char *temp = Data;
Теперь и temp и Data имеют одинаковое значение ( оба указателя указывают на одну и ту же область памяти ). Далее мы выделяем память размером size * 2, и присваиваем ее адрес указателю Data:
C++
1
Data = new char[ size * 2 ];
Теперь Data указывает на новую область памяти, в то время как temp указывает на старую область памяти ( в которую мы записывали данные до тех пор, пока выделенной памяти стало не хватать ). Нам нужно скопировать старые данные в новую память, что мы и делаем:
C++
1
memcpy( data, temp, size );
Теперь нужно изменить текущий размер, что бы знать, сколько памяти мы выделили:
C++
1
size *= 2;
Ну и в конце освобождаем "старую" память, на которую все еще указывает temp:
C++
1
delete [] temp;
2. memcpy всего лишь копирует содержимое памяти из области, на которую указывает второй параметр ( который является указателем ), в область, на которую указывает первый параметр ( который так же является указателем ), в количестве, указываемом 3 параметром ( число байт ).
 
Текущее время: 19:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru