4 / 4 / 1
Регистрация: 20.12.2015
Сообщений: 47
1

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

02.03.2017, 23:08. Показов 1947. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2017, 23:08
Ответы с готовыми решениями:

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

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

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

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

2
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
02.03.2017, 23:14 2
удалять после того, как массив больше не нужен. это будет снаружи функции.
кадабра скорее всего потому, что массив заполнен хламом. после своего посимвольного заполнения нуль впишите ну или сразу массив нулями заполняйте. а еще лучше используйте std::string и не будет ни первой ни второй проблемы.
1
Диссидент
Эксперт C
27697 / 17314 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
02.03.2017, 23:18 3
Aleksey19718, однозначно, перед return напишите result[ind] = '\0';
1
02.03.2017, 23:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2017, 23:18
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru