11. Массивы динамической памяти.
Если до начала работы программы неизвестно, сколько в массиве элементов, то используют динамические массивы. Память под них выделяется с помощью операции new или функции malloc в динамической области памяти во время выполнения программы. Адрес начала массива хранится в указателе. intn=10; int*а=newint[n]; С помощью указателей можно выделить участок памяти (динамический массив) заданного размера для хранения данных определенного типа. Для этого нужно:
1. Описать указатель (например, переменную p) определенного типа.
2. Начиная с адреса, определенного указателем, с помощью функций calloc, malloc или операции new выделить участок памяти определенного размера. После этого p будет адресом первого элемента выделенного участка оперативной памяти (0-й элемент массива), p+1 будет адресовать – следующий элемент в выделенном участке памяти (1-й элемент динамического массива), …, p+i является адресом i-го элемента. Нужно следить, чтобы не выйти за границы выделенного участка памяти. К i-му элементу динамического массива p можно обратиться двумя способами: *(p+i) или p[i]
3. Когда участок памяти будет не нужен, его можно освободить с помощью функции free() или операции delete.
Единственным параметром функции malloc является целое беззнаковое значение, определяющее размер выделяемого участка памяти в байтах. Функция malloc возвращает бестиповый указатель (void *) на выделенный участок памяти. Обращение к функции malloc: void *malloc(n); здесь n определяет размер выделяемого участка памяти в байтах, функция вернет значение NULL, если выделить память не удалось и указатель на выделенный участок памяти, при успешном выделении.
12. Организация потоков ввода/вывода, связанных с файлами.
Механизм ввода / вывода называется потоком, существуют стандартные потоки для ввода данных с клавиатуры и вывода информации на экран. Для организации ввода/вывода применяются операции. Стандартный поток ввода связан с константой cin, а поток вывода - с cout (для использования этих констант подключается заголовочный файл iostream.h).Для вывода информации используется cout<< выражение; где выражение может быть представлено переменной или смысловым выражением. Для ввода данных используют запись cin<< переменная. Класс istream - реализует поток ввода, ostream – поток вывода.
Библиотека потоков ввода / вывода определяет три глобальные объекта:
- стандартный ввод на терминал – cout (тип ostream);
- стандартный ввод с терминала – cin (тип istream);
- стандартный поток сообщений об ошибках – cerr (тип ostream).
Часто нужно вывести строку или число в определенном формате. Для этого используются манипуляторы – объекты особых типов, которые управляют тем, как обрабатываются последующие документы (позволяют создавать формат вывода). Некоторые манипуляторы позволяют также вводить или выводить специальные символы. Для использования манипуляторов их нужно вывести в выходной поток. Для доступа к манипуляторам необходимо включить в программу заголовочный файл <iomanip>. При работе с потоком можно открывать и закрывать потоки (связывать указатели на потоки с конкретными файлами); вводить и выводить: символ, строку, форматированные данные, порцию данных произвольной длины; анализировать ошибки потокового ввода-вывода и условие достижения конца потока (конца файла); управлять буферизацией потока и размером буфера; получать и устанавливать указатель (индикатор) текущей позиции.
13. Структура как тип и совокупность данных.
Структура (structure) - это тип, определяемые пользователем, это объединение нескольких переменных, возможно разного типа. Переменные, которые объединяются структурой, называются членами, элементами или нолями структуры. Определение структуры:
struct student
{char name[20];
int kurs,-
char group[10];
int stip;
};
При объявлении структуры память под нее не выделяется. Под каждую из переменных выделяется непрерывный участок памяти. Доступ к конкретному элементу структуры осуществляется следующим образом:
studl.name="Иванов Д.М.";
studl.kurs=l;
studl.group="";
studl. stip=600;
Поля битов - это специальный тип структуры, в котором определено из скольких бит состоит каждый элемент. Если после описания атрибута структуры поставить двоеточие и затем целое число, то это число задает количество битов, выделенных под данный атрибут структуры. Пример объявления:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.