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

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

Войти
Регистрация
Восстановить пароль
 
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 293
#1

возвращение подмассив - C++

14.03.2014, 19:09. Просмотров 245. Ответов 4
Метки нет (Все метки)

Нужно написать функцию которая будет принимать два параматры: массив и количество элементов каторих нужно вернуть в новом масиве. Написать желательно на Си. Як это можно реализовать? Масив типу char.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 19:09     возвращение подмассив
Посмотрите здесь:

Подмассив массива C++
Возвращение по ссылке C++
Подмассив C++
C++ Максимальный подмассив в двумерном массиве
Найти наибольший подмассив заданного массива C++
C++ Возвращение char[]
C++ Двумерный массив. Найти подмассив, имеющий наибольшую сумму элементов
Возвращение обьекта из шаблона C++
C++ Возвращение значений из функции
C++ Возвращение функции, ifstream
C++ Возвращение значения
Найти такой подмассив, что его сумма максимальна (через контейенры map и set) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mymedia
190 / 190 / 48
Регистрация: 27.05.2011
Сообщений: 543
14.03.2014, 19:18     возвращение подмассив #2
В С/С++ функции не могут ни принимать, ни возвращать массив, только указатели.
То есть ты хочешь "обрезать" массив? А что тебе мешает просто забыть про оставшеюся часть. Просто думай, что у тебя в массиве не 10 элементов, а, скажем, 5. Просто не обращайся к ним
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 293
14.03.2014, 19:27  [ТС]     возвращение подмассив #3
Цитата Сообщение от mymedia Посмотреть сообщение
То есть ты хочешь "обрезать" массив?
По сути нужно вернуть из функции указатель на вновь сформированный массив который будет размещен в другом участке памяти.
Цитата Сообщение от mymedia Посмотреть сообщение
А что тебе мешает просто забыть про оставшеюся часть. Просто думай, что у тебя в массиве не 10 элементов, а, скажем, 5
Просто потом будет неудобно пользоваться этим массивом, потому что он будет еще делиться не элементы.
jurok_85
238 / 221 / 76
Регистрация: 21.02.2013
Сообщений: 515
Завершенные тесты: 1
14.03.2014, 19:51     возвращение подмассив #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ну так по моему:
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
#include  <stdio.h>
#include <cstdlib>
 
char* resize_arr(char a[], int sz)
{
  char* newarr= (char*)malloc(sz);
    for(int i = 0; i != sz; i++)
    newarr[i] = a[i];
 
    return newarr;
}
int main()
{
    char arr[20];
 
    for(int i = 0; i != 20; i++){
    arr[i] = i+48;
     printf ("%c  ", arr[i]);
    }
    int new_size = 10;
 
    char* resized;
    resized = resize_arr(arr, new_size);
 
    for(int j = 0; j != new_size; j++)
    printf ("%c  ", resized[j]);
}
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 293
14.03.2014, 19:56  [ТС]     возвращение подмассив #5
Я думаю нужно еще в конец массива \0 запихнуть.
C++
1
newarr[sz] = '\0';
Yandex
Объявления
14.03.2014, 19:56     возвращение подмассив
Ответ Создать тему
Опции темы

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