Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aleksey19718
3 / 3 / 1
Регистрация: 20.12.2015
Сообщений: 47
1

возврат динамического массива из функции

02.03.2017, 23:08. Просмотров 468. Ответов 2
Метки нет (Все метки)

Всем привет, вот часть кода функции
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
char *result=new char[100];
    int ind=0;
    int number=0;
    int k=1;
    while (number<getLength()-numberSpace)
    {
        int i=0;
        while (number<getLength()-numberSpace && i<k)
        {
            result[ind++]=A[k-i-1][i];
            i++;
            number++;
        }
        k++;
        i=0;
        while (number<getLength()-numberSpace && i<k)
        {
            result[ind++]=A[i][k-i-1];
            i++;
            number++;
        }
        k++;
    }
    return result;
я создаю динамический массив, записываю в него char ы и возвращаю.
Вопросы:
1. В какой момент мне нужно высвобождать память?
2. Почему ответ выводится правильный, но в строку дописываются непонятные символы(работа с русскими буквами), к примеру вывод должен быть такой - "Чтозаумникэтопридумал?Кошмар", а выводится - "Чтозаумникэтопридумал?Кошмарly 6"?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2017, 23:08
Ответы с готовыми решениями:

Возврат динамического массива
Задание: Для решения различных задач используются методы Монте-Карло, предполагающие применение...

Возврат массива из функции
Программа должна переводить числа с 10 системы в двоичную... но почемуто выводит некорректно... Вот...

Возврат массива из функции
Есть задача: используя функции, вычислить количество элементов заранее введённых массивов, которые...

Возврат массива из функции
Здравствуйте. Не могу разобраться, почему при передачи массива из функции но не правильно...

2
DU3
281 / 235 / 114
Регистрация: 07.09.2016
Сообщений: 587
02.03.2017, 23:14 2
удалять после того, как массив больше не нужен. это будет снаружи функции.
кадабра скорее всего потому, что массив заполнен хламом. после своего посимвольного заполнения нуль впишите ну или сразу массив нулями заполняйте. а еще лучше используйте std::string и не будет ни первой ни второй проблемы.
1
Байт
Эксперт C
22765 / 14435 / 3029
Регистрация: 24.12.2010
Сообщений: 30,745
02.03.2017, 23:18 3
Aleksey19718, однозначно, перед return напишите result[ind] = '\0';
1
02.03.2017, 23:18
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2017, 23:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Возврат массива из функции
В объекте есть массив int state;, который мне нужно из него вытащить. Вижуал показывал ошибку,...

Возврат массива из функции
Здравствуйте, Не пойму почему не работает данный код. Пишет cannot convert 'std::string*' to...

Возврат массива из функции
Здравствуйте! Нужно решить задачу, но для её решения я не могу понять как правильно вывести...

Возврат двумерного массива из функции
При попытке возврата массива из функции выскакивает ошибка &quot;cannot convert ‘double (*)’ to ‘double’...


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

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

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