Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14

Вернуть массив параметров, добавив в конце -1

30.07.2018, 09:35. Показов 471. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто знает, как это сделать? Например, вызвать:
C++
1
f(5);
- получить массив длиной 2 со значениями 5, -1; вызвать:
C++
1
f(123, 256, 555, 729);
- получить массив длиной 5 со значениями 123, 256, 555, 729, -1.
Причем длина массива должна быть указанной явно.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2018, 09:35
Ответы с готовыми решениями:

Вернуть массив параметров, увеличив все их на 1, с сохранением длины массива
Кто знает, как это сделать? Например, вызвать: f(5); - получить массив длиной 1 со значением 6; вызвать: f(123, 256, 555, 729); -...

Как из симулинка выдернуть в конце каждого цикла значение полученных параметров и занести их в массив?
В общем я сделал вот такую штуку, которая в цикле запускает модель в симулинке и после каждого цикла меняет ее параметры. n= k= ...

Вернуть то же самое представление без перезагрузки, но добавив информацию
Нужно что бы после выполнения аякс запроса CreateSubTask произошла перезагрузка Частичного представления "Внутреннее задание" ...

3
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
30.07.2018, 10:43
Длину массива тоже надо возвращать, пусть она хранится в начале этого массива:
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
#include <cstdlib>
#include <iostream>
#include <cstdarg>
using namespace std;
int* f(int n1, ...) 
{
    va_list ap;             
    va_start(ap, n1);   
    int count = 1;
    while(true) 
    {
        int ival = va_arg(ap, int); 
        count++;
        if (*ap == 0)
            break;
    }
    va_end(ap); // закончили подсчет количества параметров
    int* arr = new int[count+2]; // память нужна на 2 элемента больше
    arr[0] = count+1; // в начало массива запишем количество параметров
    arr[1] = n1; // первый параметр
    va_start(ap, n1);
    for(int i=2;i<=count;i++)
        arr[i]= va_arg(ap, int);// остальные параметры
    va_end(ap);
    arr[count + 1] = -1; // в конец запишем -1
    return arr;
}
 
int main()
{
    int* p;
    p=f(1,2,3,4);
    for (int i = 1; i <= p[0]; i++)
        cout << p[i] << endl;
    delete[] p;
    system("pause");
    return 0;
}
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
30.07.2018, 10:51  [ТС]
Это не то. Функция должна возвращать не указатель, а статический массив.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
30.07.2018, 11:11
Нельзя вернуть статический массив, т.к. он будет локальным для функции и, соответственно,
уничтожится при выходе из нее.

Как вариант, можете создать статический массив вне функции,
но тогда это все бессмысленно, т.к. до вызова функции Вы все необходимое для такого массива уже будете знать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2018, 11:11
Помогаю со студенческими работами здесь

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

В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель
В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель на него. Первым элементом...

Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь что это некоторое несовершенство языка...

Вернуть несколько параметров
Доброго времени суток, можно ли сделать функцию, которая будет возвращать несколько параметров? К примеру: {int, bool}...

Функция: вернуть среднее арифметическое параметров
Написать функцию, которая будет возвращать ср.арифметическое своих параматров


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru