С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 57
1

Выделение памяти для массива

16.10.2014, 21:34. Показов 670. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопроса похожего не нашел, в задаче требуется считать матрицу из текстового файла,выделение хотелось бы реализовать следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void matrix::read(ifstream &f)
{
    int i=0;
    int j=0;
    while(f.peek()!=EOF)
    {
        a=new double *;
        j=0;
        while (f.peek()!='\n')
        {
            a=new double;
            f>>b[j];
            j++;
        }
        a[i]=b;
        i++;
        f.ignore();
    }
    n=i;
    m=j;
}
То есть, выделять память для строки и элемента непосредственно, но так происходит наложение ячеек памяти или что-то в этом роде, есть идея определять адреса каждого элемента в памяти самому (получить &a[i][j] и добавить 8 байт) , можно ли так реализовать? и есть ли другие идеи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2014, 21:34
Ответы с готовыми решениями:

Выделение памяти для массива через функцию и использование этого массива
Я определяю свою структуру, создаю динамический массив, где будут храниться элементы этой...

Выделение памяти для массива
Пишу такой код: int main() { int* arr1 = new int; } Всё норм. Теперь такой:

Выделение памяти для массива
верно ли выделил память для массива если нет поправьте, заранее спасибо) class type { private:...

Выделение памяти для двумерного массива
Обьясните что означает double** A = new double*, A = new double;,cout.precision(2);, delete...

6
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
16.10.2014, 21:50 2
Вообще ничего не понял. b у тебя не объявлено, память для а выделена неправильно...
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2014, 21:53 3
Сколько строк и столбцов в матрице известно? Если нет - сначала нужно считать, а потом уже память выделять.

Добавлено через 1 минуту
Класс покажите.
0
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 57
16.10.2014, 22:03  [ТС] 4
Извини, не тот вариант просто скопировал там в 12 строке вместо b a[i][j], и 15 строчки нету

Добавлено через 1 минуту
число строк и столбцов неизвестно
класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <fstream>
using namespace std;
class matrix
{
private:
    int n;
    int m;
    double **a;
public:
    //конструкторы
    matrix(int a, int b); //создает нулевую матрицу размером nxm
    matrix();//создает нулевую матрицу
    matrix (int k,int l, bool E);//создает матрицу размером nxm , нулевую если E=0 , единичную если E=1
    void scanmatrix(); //ввод матрицы с клавиатуры
    void scanmatrix(int, int);
    void randmatrix();
    void printmatrix();
    void record(ofstream &);
    void read(ifstream &);
 
    double getitem(int ,int);
    void putitem(double, int, int);
 
    double mean();
 
    matrix operator + (matrix);
    matrix operator - (matrix);
    matrix operator * (matrix);
    matrix operator * (double k);
    void transp();
};
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2014, 22:05 5
Цитата Сообщение от ronny10 Посмотреть сообщение
число строк и столбцов неизвестно
Значит:
Цитата Сообщение от alsav22 Посмотреть сообщение
сначала нужно считать, а потом уже память выделять.
1
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 57
16.10.2014, 22:16  [ТС] 6
Цитата Сообщение от alsav22 Посмотреть сообщение
Значит:
еще есть варианты ?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2014, 22:23 7
Цитата Сообщение от ronny10 Посмотреть сообщение
еще есть варианты ?
Вектор векторов.
1
16.10.2014, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2014, 22:23
Помогаю со студенческими работами здесь

Выделение памяти для непрямоугольного массива
Возник вопрос: У меня в любительской прожке. Для ускорения расчётов формируется два массива...

Выделение памяти для массива в стеке
Правильно ли так выделять память? в gss работает в vs нет.тут память получается на стеки...

Динамическое выделение памяти для массива
Кто может помочь решить задачу. Для заданного двумерного массива из n строк и m столбцов вывести...

Выделение памяти для двухмерного массива
Здрасьте! Есть следующий код: float **Matrix = new float*; for(int i = 0;...


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

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