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

Файловый ввод/вывод, динамические массивы - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Петька
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 4
15.05.2009, 19:30     Файловый ввод/вывод, динамические массивы #1
Помогите выполнить ввод квадратной матрицы из файла с использованием динамических переменных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2009, 19:30     Файловый ввод/вывод, динамические массивы
Посмотрите здесь:

файловый ввод-вывод C++
C++ Файловый ввод-вывод.
C++ Файловый ввод / вывод
Файловый ввод/вывод C++
Файловый ввод\вывод C++
C++ файловый ввод/вывод
C++ Файловый ввод вывод
C++ Файловый ввод/вывод
Файловый ввод-вывод C++
C++ Файловый ввод / вывод
C++ Файловый ввод вывод
Файловый ввод / вывод C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
15.05.2009, 19:59     Файловый ввод/вывод, динамические массивы #2
в C++ нет "динамических переменных".
body90
 Аватар для body90
359 / 292 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
26.05.2009, 00:40     Файловый ввод/вывод, динамические массивы #3
Многомерные динамические массивы
Многомерный массив в C++ по своей сути одномерен. Операции new[] и delete[] позволяют создавать и удалять динамические массивы, поддерживая при этом иллюзию произвольной размерности. Деятельность по организации динамического массива требует дополнительного внимания, которое окупается важным преимуществом: характеристики массива (операнды операции new) могут не быть константными выражениями. Это позволяет создавать многомерные динамические массивы произвольной конфигурации. Следующий пример иллюстрирует работу с динамическими массивами.

C++
1
#include <iostream.h>int fdArr(int **, int, int);int fdArr(int ***, int, int, int);// Одноимённые функции. Различаются списками списками параметров.// Это так называемые перегруженные функции. О них позже.void main(){int i, j;/* Переменные (!) для описания характеристик массивов.*/int dim1 = 5, dim2 = 5, dim3 = 10, wDim = dim2;/*Организация двумерного динамического массива производится в два этапа.Сначала создаётся одномерный массив указателей, а затем каждому элементуэтого массива присваивается адрес одномерного массива. Для характеристикразмеров массивов не требуется константных выражений.*/int **pArr = new int*[dim1];for (i = 0; i < dim1; i++) pArr[i] = new int[dim2];pArr[3][3] = 100;cout << pArr[3][3] << endl;fdArr(pArr,3,3);/*Последовательное уничтожение двумерного массива…*/for (i = 0; i < dim1; i++) delete[]pArr[i];delete[]pArr;/*Организация двумерного "треугольного" динамического массива. Сначаласоздаётся одномерный массив указателей, а затем каждому элементу этогомассива присваивается адрес одномерного массива. При этом размер(количество элементов) каждого нового массива на единицу меньшеразмера предыдущего. Заключённая в квадратные скобки переменная вописателе массива, которая, в данном контексте, является операндомоперации new, позволяет легко сделать это.*/int **pXArr = new int*[dim1];for (i = 0; i < dim1; i++, wDim--) pXArr[i] = new int[wDim];pXArr[3][3] = 100;cout << pArr[3][3] << endl;fdArr(pXArr,3,3);/*Последовательное уничтожение двумерного массива треугольной конфигурации…*/for (i = 0; i < dim1; i++) delete[]pXArr[i];delete[]pXArr;/*Создание и уничтожение трёхмерного массива требует дополнительной итерации.Однако здесь также нет ничего принципиально нового.*/int ***ppArr;ppArr = new int**[dim1];for (i = 0; i < dim1; i++) ppArr[i] = new int*[dim2];for (i = 0; i < dim1; i++){for (j = 0; j < dim2; j++) ppArr[i][j] = new int[dim3];}ppArr[1][2][3] = 750; cout << ppArr[1][2][3] << endl; fdArr(ppArr,1,2,3);for (i = 0; i < dim1; i++){for (j = 0; j < dim2; j++) delete[]ppArr[i][j];}for (i = 0; i < dim1; i++) delete[]ppArr[i];delete[] ppArr;}int fdArr(int **pKey, int index1, int index2){cout << pKey[index1][index2] << endl;}int fdArr(int ***pKey, int index1, int index2, int index3){cout << pKey[index1][index2][index3] << endl;
Yandex
Объявления
26.05.2009, 00:40     Файловый ввод/вывод, динамические массивы
Ответ Создать тему
Опции темы

Текущее время: 19:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru