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

Функция, что возвращает динамический массив - C++

Восстановить пароль Регистрация
 
Aleator
 Аватар для Aleator
66 / 66 / 3
Регистрация: 04.05.2011
Сообщений: 1,146
10.04.2013, 21:32     Функция, что возвращает динамический массив #1
Функция возвращает динамический массив
C++
1
2
3
4
5
int *A1 (BYTE val) {
    int *mass = new int[8];
   //инициализация массива
   return mass;
}
Правильно ли я присваиваю её значения и правильно ли удаляю:
C++
1
2
3
4
5
6
7
8
9
10
11
    int *MassByteBlock;
 
for(int i=0;i<x;i++) {
     MassByteBlock=A1(Y);
     // работаю с MassByteBlock
     delete[] MassByteBlock;
 
     MassByteBlock=A1(G);
     // работаю с MassByteBlock
     delete[] MassByteBlock;
}
Добавлено через 53 минуты
Эй, кто нибудь!
Ответь на вопрос!
И прекрати
мой словесный понос!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 21:32     Функция, что возвращает динамический массив
Посмотрите здесь:

Функция возвращает массив C++
Функция которая возвращает динамический массив C++
Шаблонная функция с явной специализацией не возвращает динамический массив C++
C++ Что возвращает функция size()?
Узнать, что возвращает функция C++
C++ Функция принимает указатель на динамический массив и возвращает его же, но без чисел полиндромов (читается с обоих сторон одинаково - 234432)
C++ Узнать что возвращает функция
Объясните что возвращает функция C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
10.04.2013, 21:59     Функция, что возвращает динамический массив #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Функция возвращает не динамический массив, а указатель на него. А так вроде правильно.
По крайней мере пример, основанный на вашем участке кода, работает:
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 <iostream>
#include <stdlib.h>
 
using namespace std;
 
int* mass_new(int a) {
    int *mass = new int[a];
    return mass;
}
 
void r(int a, int* mass) {
    for(int i=0; i<a; i++)
        mass[i] = rand()%50;
}
 
int main() {
    int* mass;
    for(int j=0; j<5; j++) {
        mass = mass_new(5);
        r(5, mass);
        for(int i=0; i<5; cout << mass[i++] << endl );
        delete [] mass;
        cout << endl;                                                                                                                          
        mass = mass_new(6);
        r(6, mass);
        for(int i=0; i<5; cout << mass[i++] << endl );
        cout << endl; 
        delete [] mass;
    }
    return 0;
}
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
10.04.2013, 22:00     Функция, что возвращает динамический массив #3
да, правильно.
Но отдавай себе отчет в том, что new и delete у тебя на разных уровнях находятся, что не есть хорошо.
Yandex
Объявления
10.04.2013, 22:00     Функция, что возвращает динамический массив
Ответ Создать тему
Опции темы

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