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

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

Войти
Регистрация
Восстановить пароль
 
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
#1

Копия массива(Функция) - C++

06.06.2012, 13:17. Просмотров 616. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int* copy(int* a)
{
    int mass[sizeof(a)+1] = {};
    for(int i = 0; i <= sizeof(a); i++)
    {
        mass[i] = a[i];
        std::cout << mass[i] << " \n"; // почему тут выводится нормально
    }
    for(int i = 0; i <= sizeof(mass); i++)
        std::cout << mass[i] << "\n"; // а в этом месте совсем не нормально 
    return mass;
}
 
int main()
{
    int mass[5] = {20,19,5,9,2};
    int* new_mass = copy(mass);
    std::cout << sizeof(new_mass) << " \n";
    for(int i = 0; i <= sizeof(new_mass); i++)
        std::cout << new_mass[i] << " ";
    std::cout << std::endl;
}
Копирует массив в функции не праильно . Я что то путаю с указателями . Помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 13:17     Копия массива(Функция)
Посмотрите здесь:

Копия двумерного динамического массива - C++
Как создать копию двумерного динамического массива? Имеется двумерный динамический массив. Нужно создать его копию. Добавлено...

Как передавать массив по ссылке, чтобы не работала копия массива? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int Min (int a,const int size); int _tmain(int argc, _TCHAR* argv) ...

Написать программу:функция что возвращает элемент массива,и удаляет этот элемент з массива - C++
Написать программу:функция что возвращает элемент массива,и удаляет этот элемент з массива помогите написать!!

копия файла - C++
как можно в c++ создать копию файла 1.txt .есть какаянибуть конкретная функция .когда я считываю из одного файла и записываю в другой...

Копия cout - C++
Здравствуйте, пишу программу. Вот есть вопрос. Как сделать что если я ввожу в программе print 565 то выводилось 565? По идеи print должно...

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

Функция транспонирования массива - C++
Написать функцию, которая транспонирует заданный в качестве параметра массив типа int (т.е. меняет местами равноудалённые от концов массива...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.06.2012, 13:23     Копия массива(Функция) #2
Цитата Сообщение от balrak Посмотреть сообщение
return mass;
возвращаешь локальный массив

Добавлено через 43 секунды
Цитата Сообщение от balrak Посмотреть сообщение
int mass[sizeof(a)+1]
размер этого массива на 32-х битных машинах всегда равен 5-ти
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 13:27     Копия массива(Функция) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
using namespace std;
int* copy(int* a)
{
    for(int i=0;i<5;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return a;
}
 
int main()
{
    int mas[5]={1,2,3,4,5};
    int* newMass=new int[5];
    newMass=copy(mas);
    for(int i=0;i<5;i++)
        cout<<newMass[i]<<" ";
    getch();
    return 0;
}
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
06.06.2012, 13:30  [ТС]     Копия массива(Функция) #4
Jupiter, а можешь поподробней пожалучта
не понял я тебя

Добавлено через 3 минуты
Andrey.K, ты можешь обьяснить что в моем коде не так?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.06.2012, 13:35     Копия массива(Функция) #5
balrak, после выхода из тела функции, созданные в ней локальные переменные недоступны
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 13:45     Копия массива(Функция) #6
Цитата Сообщение от balrak Посмотреть сообщение
Jupiter, а можешь поподробней пожалучта
не понял я тебя

Добавлено через 3 минуты
Andrey.K, ты можешь обьяснить что в моем коде не так?
Ты передаешь в свою ф-ю массив. Далее там делаешь копию этого массива, который копируется в локальный массив в твоей ф-ии. Локальный значит виден в том блоке,где создан, а затем созданный массив пытаешься вернуть в другую ф-ю(в нашем случае main()). Оно возвращает мусор.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 13:47     Копия массива(Функция)
Еще ссылки по теме:

функция получения массива - C++
// arr из строки файла fl и записи размера получ. массива в перем. size int* getArray(int * arr, FILE * f, int &amp;size) //int&amp; обеспечивает...

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

заполнение массива функция - C++
Доброй ночи! Пытаюсь при помощи функции и указателей заполнить массив. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt;...

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

Функция возврата массива - C++
Элементы матрицы заданы соотношением:a_(i,j) =(ln^2i/(1.5-7j))^3+e^(i+j). Пользуйтесь редактором формул внизу страницы Переписываю,...


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

Или воспользуйтесь поиском по форуму:
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
06.06.2012, 13:47  [ТС]     Копия массива(Функция) #7
Jupiter,
Andrey.K,
Спасибо . теперь разобрался
Yandex
Объявления
06.06.2012, 13:47     Копия массива(Функция)
Ответ Создать тему
Опции темы

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