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

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

Войти
Регистрация
Восстановить пароль
 
valeriy007
77 / 22 / 6
Регистрация: 27.10.2014
Сообщений: 420
#1

Функция возвращающая массив - C++

01.07.2015, 15:58. Просмотров 270. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include "conio.h"
 
int *convertToBin()
{
    int a[5] = { 1, 2, 3, 4, 5};
    return a;
}
 
int main()
{
    int *arr = convertToBin();
 
    for (int i = 0; i < 5; i++)
    {
        std::cout << arr[i] << std::endl;
 
    }
 
    system("pause");
    return 0;
}
Не могу понять где собственно проблема, вроде делал по примерам с интернета(
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2015, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция возвращающая массив (C++):

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

Функция возвращающая массив - C++
Здравствуйте. Для возврата массива возвращаю указатель на него, но вне предела области в которой он был создан память выделенная под массив...

Функция, возвращающая массив - C++
Возможно ли что функция возвращает массив. Если да то было бы хорошо листинг программы где выполняется такая реализация Спасибо!

Функция, возвращающая массив - C++
Нужно вернуть из функции массив. int F(int a,int* b) { for(int i=0;i&lt;a;i++) *b++; for(int i=0;i&lt;3;i++) printf(&quot;%d\n&quot;, b); ...

Функция, возвращающая массив - C++
Задача: В двумерном целочисленом массиве заданного размера найти номера строк, элементы которых образуют убявающую последовательность. ...

Функция, возвращающая указатель на двумерный массив - C++
Добрый день! Столкнулся с конструкцией которую раньше не видел, и не до конца понимаю что это и как работает: #include &lt;stdio.h&gt; ...

2
zss
Модератор
Эксперт С++
6530 / 6092 / 2007
Регистрация: 18.12.2011
Сообщений: 15,843
Завершенные тесты: 1
01.07.2015, 16:34 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Нельзя возвращать адреса нединамических локальных переменных,
т.к. после выхода из функции они становятся недействительными.

Один из возможных вариантов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int *convertToBin()
{
    int* a=new int[5];
    for(int i=0;i<5;i++)
         a[i]=i;
    return a;
}
 
int main()
{
    int *arr = convertToBin();
 
    for (int i = 0; i < 5; i++)
    {
        std::cout << arr[i] << std::endl;
    }
    delete[] arr; // К сожалению, в этом случае надо массив удалять
    system("pause");
    return 0;
}
А лучше так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void convertToBin(int* a)
{
    for(int i=0;i<5;i++)
         a[i]=i;
}
 
int main()
{
    int arr[5];
    convertToBin(arr);
 
    for (int i = 0; i < 5; i++)
    {
        std::cout << arr[i] << std::endl;
    }
    system("pause");
    return 0;
}
1
smartpointer
68 / 62 / 24
Регистрация: 17.02.2014
Сообщений: 262
01.07.2015, 16:38 #3
Нельзя возращать локальную переменную, в вашем случае вы возращаете адрес первого байта массива, который будет уничтожен при выходе из функции. В функции можно создать массив в куче - тогда пример будет рабочим.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2015, 16:38
Привет! Вот еще темы с ответами:

Шаблонная функция возвращающая созданный динамический массив - C++
Здравствуйте! Нужна Ваша помощь! Нужна шаблонная функция которая возвращает созданный динамический массив, который на 2...

Функция возвращающая позицию первого вхождения числа в массив - C++
Задача: Написать функцию, которая получает в качестве параметров адрес числового массива данных, его размер и число. Функция...

Функция возвращающая позицию первого вхождения числа в массив - C++
Вот задача: Написать функцию, которая получает в качестве параметров адрес числового массива данных, его размер и число. Функция...

Функция, возвращающая vector - C++
Решил реализовать шарповскую String.Split(). Она должна возвращать vector&lt;string&gt;, следовательно либо для него надо выделять место в...


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

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

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