Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.88
NikITKA123
19 / 18 / 1
Регистрация: 28.04.2010
Сообщений: 86
#1

Как создать динамический массив размерностью m на n? - C++

12.11.2010, 17:19. Просмотров 3191. Ответов 20
Метки нет (Все метки)

подскажите, а то я только n на n создавать умею)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2010, 17:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как создать динамический массив размерностью m на n? (C++):

Есть динамический массив с размерностью 5, необходимо его сделать с размерностью 6, заполнить цифрами и вывести на экран - C++
День добрый. Не хочется никому морочить голову дурацкими вопросами, поэтому стараюсь находить на все свои вопросы ответы сам. Но тут я...

Как создать динамический массив типа string? Как создать класс такого массива? - C++
Как создать динамический массив типа string? Как создать класс такого массива? =-O Помогите, пожалуйста, очень нужна помощь!

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include "stdafx.h" ...

Как создать двумерный динамический массив - C++
Помогите, пожалуйста, в таком вопросе: нужно создать динамический двумерный массив. Да он еще должен быть такой, чтоб длина строк была...

Как создать одномерный динамический массив? - C++
Как создать одномерный динамический массив?

Как создать динамический массив строк? - C++
Делаю лабораторную и пока только разбираюсь, как создать динамический массив строк Написал вот это, но при печати строки появляется...

20
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
15.11.2010, 20:39 #16
Цитата Сообщение от Don Vito Посмотреть сообщение
Спасибо, обещаю покавырться в этом коде в доль и поперек
ну я надеюсь
1
Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 162
15.11.2010, 20:51 #17
Еще один вопрос,

Создаю массив

C++
1
2
3
4
5
dMas = new double* [fsize + 1];
    for (int i = 0; i < fsize + 1; i++){
    
        dMas[i] = new double [11];
    }
В консоле на меня ругаются, где я касякнул то?

"this application has requested the runtime to terminate it in an unusual way
please contact ...
"

Добавлено через 57 секунд
P.S. первая размерность очень большая...
0
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
15.11.2010, 21:00 #18
кинь больше кода особенно интересно объявление dMas и значение fsize
1
Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 162
15.11.2010, 21:11 #19
Если в кратце...

Пытаюсь сделать класс работающий с рядами биржевых данных. Все очень, очень сырое, поэтому не рунайтесь...

Функция принимает имя и путь файла и читает его в массив double.

Образец файла:

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
32
33
20100111 000000 1.47460 1.47480 1.47400 1.47480 0
20100111 000100 1.47450 1.47480 1.47400 1.47400 0
20100111 000200 1.47450 1.47450 1.47400 1.47400 0
20100111 000300 1.47440 1.47480 1.47390 1.47480 0
20100111 000400 1.47420 1.47510 1.47400 1.47510 0
20100111 000500 1.47490 1.47510 1.47480 1.47480 0
20100111 000600 1.47460 1.47520 1.47460 1.47460 0
20100111 000700 1.47520 1.47570 1.47460 1.47460 0
20100111 000800 1.47470 1.47550 1.47460 1.47460 0
20100111 000900 1.47520 1.47520 1.47470 1.47520 0
20100111 001000 1.47480 1.47480 1.47470 1.47470 0
20100111 001100 1.47520 1.47570 1.47430 1.47450 0
20100111 001200 1.47430 1.47500 1.47420 1.47430 0
20100111 001300 1.47460 1.47500 1.47420 1.47500 0
20100111 001400 1.47500 1.47500 1.47410 1.47460 0
20100111 001500 1.47500 1.47500 1.47410 1.47430 0
20100111 001600 1.47500 1.47500 1.47410 1.47460 0
20100111 001700 1.47410 1.47410 1.47410 1.47410 0
20100111 001800 1.47420 1.47490 1.47410 1.47490 0
20100111 001900 1.47460 1.47460 1.47410 1.47450 0
20100111 002000 1.47490 1.47490 1.47410 1.47460 0
20100111 002100 1.47420 1.47490 1.47420 1.47490 0
20100111 002200 1.47460 1.47490 1.47420 1.47420 0
20100111 002300 1.47440 1.47450 1.47420 1.47420 0
20100111 002400 1.47480 1.47480 1.47420 1.47420 0
20100111 002600 1.47480 1.47480 1.47410 1.47410 0
20100111 002700 1.47420 1.47490 1.47420 1.47430 0
20100111 002800 1.47490 1.47500 1.47410 1.47460 0
20100111 002900 1.47470 1.47510 1.47410 1.47470 0
20100111 003000 1.47430 1.47510 1.47430 1.47460 0
20100111 003100 1.47530 1.47530 1.47500 1.47520 0
20100111 003200 1.47500 1.47530 1.47500 1.47530 0
20100111 003300 1.47520 1.47600 1.47490 1.47490 0
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
double ** Stock_Data::File_Dl_Read(char **A){
 
    double **dMas = 0;
    double *dd = 0;
    unsigned long fsize = 0;
    unsigned long bread = 0;
    char *Buf = 0;
    char s1 [260];
    double *time;
    double *data;
    double *price;
    double *volume;
 
    cin >> s1;
 
    strcat(s1,*A);
 
    FILE *fq = fopen(s1,"rb");
 
        if (!fq){
    
        cout << "File do not open!" << endl;
        }else{
            cout << "File is opened!" << endl;
 
 
    if (fseek(fq, 0L, SEEK_END)){
    
        fclose(fq);
        cout << "Can't move description to the end of file!" << endl;
        //return 1;
    }else {
    
        fsize = ftell(fq);
    }
 
    if (fsize == -1L){
    
        fclose(fq);
        cout << "Can not get file size!" << endl;
        //return 1;
    }
 
    if (fseek(fq, 0L, SEEK_SET)){
    
        fclose(fq);
        cout << "Can not move descriptor to the beginning o the file!" << endl;
        //return 1;
    }
 
    Buf = new char [fsize + 1];
    memset(Buf, 0, fsize + 1);
 
    bread = fread(Buf, sizeof(char), fsize, fq);
 
    if (bread != fsize){
    
        delete [] Buf;
        fclose (fq);
        cout << "File read ERROR" << endl;
        cout << "Bytes read = " << bread << "!" << endl;
        cout << "File size = " << fsize << "!" << endl;
 
    }
 
    char * bf = Buf;
    
    dMas = new double* [fsize + 1];
    for (int i = 0; i < fsize + 1; i++){
    
        dMas[i] = new double [11];
    }
 
 
    for (unsigned long i = 0, z,  count = 0; i < fsize; i+=51){
 
        data  = ChDataToDl(&bf[i]);
 
        for (z = 0; z < 3; count++,z++){
        
            //dMas[i][count] = data[z];
            cout << data[z] << " ";
        
        }
 
        time = ChTimeToDl(&bf[i+9]);
 
        for (z = 0; z < 3; count++, z++){
        
            //dMas[i][count] = time[z];
            cout << time[z]<< " ";
 
        }
 
        price = ChPricesToDl(&bf[i+16]);    
 
        for (z = 0; z < 4; count++, z++){
            
            //dMas[i][count] = price [z];
            cout << price[z]<< " ";
 
        }
            volume = ChPriceToDl(&bf[i+48]);
 
            //dMas[i][count] = *volume;
            cout << *volume<< endl;
 
    }
    
    
 
    fclose (fq);
    delete [] Buf;
        }
 
 
    return dMas;
 
}
0
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
15.11.2010, 21:20 #20
Ежели используете потоки io то тогда уж и файл тоже с помощью потоков считывать лучше.
А как вы потом собираетесь размер массива возвращенного функцией узнать?
1
Don Vito
9 / 9 / 1
Регистрация: 22.11.2009
Сообщений: 162
15.11.2010, 21:29 #21
У меня есть функция определяющая размер...

Корявое наверно решение, но сейчас главное чтоб работало, а то очень медленно пишиться...

Добавлено через 3 минуты
Файл весит 14,4 МБ, вообще это один кусочек только, в будущем нужно будет побольше загружать...
0
15.11.2010, 21:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2010, 21:29
Привет! Вот еще темы с ответами:

Как создать динамический двумерный массив - C++
Можно ли создать на С++ динамический двухмерный масив? Как? int z , x ; cin &gt;&gt; z ; cin &gt;&gt; x ; int *arr = new int(z); int *arr1...

Как создать динамический массив структур? - C++
А как работать с вектором если я хочу динамический массив структур? т.е. допустим struct tovar { string name; int cost; ...

Как создать динамический двумерный массив - C++
Динамический одномерный массив p можно сождать примерно так: int N, *p; cin &gt;&gt; N; p= new int А как создать динамический...

Как правильно создать динамический массив из функции - C++
Вот так ругается компилятор: int** i_matrix; f(i_matrix,N, M); ............................................. void f(int**...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

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